2016-02-26 34 views
0

有一个问题,改变在弹出窗口文本视图的文本。的TextView在PopUpwindow原因空指针异常

代码的简单的版本是这样的:

public class Activity extends Activity { 


View popupView; 
PopupWindow pw_info; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.activity_menue); 



    // Layout components 
    tv_function = (TextView) findViewById(R.id.function); 
    tv_result = (TextView) findViewById(R.id.tv_result); 
    tv_total = (TextView) findViewById(R.id.tv_total_result); 

    }); 



@Override 
protected void onStart(){ 
    super.onStart(); 
    pop_up(); 
} 



// PopUp Window for start and end 
private void pop_up(){ 

    LayoutInflater layoutInflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE); 
    popupView = layoutInflater.inflate(R.layout.popup_window, null); 
    final PopupWindow pw_popupWindow = new PopupWindow(popupView, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 


    popupView.post(new Runnable() { 
     public void run() { 
      pw_popupWindow.showAtLocation(popupView, Gravity.CENTER, 0, 0); 
      tv_function.setText("start"); 
      tv_popup = (TextView) findViewById(R.id.tv_popup_text); 


      new CountDownTimer(3000, 1000) { 

       public void onTick(long l_millisUntilFinished) { 
        // Problem: accessing tv_popup creates NULLPOINTER Exception! 
        tv_popup.setText(String.valueOf(l_millisUntilFinished/1000)); 
       } 

       public void onFinish() { 
        pw_popupWindow.dismiss(); 
            } 

      }.start(); 


      } 
    }); 

} 

我尝试用倒计时的滴答每次改变TextView的。我的问题是,我无法在CountDownTimer期间更改TextView。这会导致NullPointer异常。 林真的不知道什么时候来定义和初始化tv_popup TextView的。

任何人能帮助我们吗?

谢谢!

+0

尝试使用'tv_popup =(TextView的)popupView.findViewById(R.id.tv_popup_text);'还...你在哪里初始化tv_popup – Helix

回答

2

可以清楚地看到你正在使用弹出窗口的TextView与布局

所以您需要添加popupView对象,当你definifing其ID

tv_popup = (TextView) popupView.findViewById(R.id.tv_popup_text); 

尝试这个

+0

谢谢...工作正常。 –

0

你有初始化你用弹出对象的所有视图,因此您的代码应该像

tv_popup = (TextView) popupView.findViewById(R.id.tv_popup_text);