2017-02-13 70 views
1

我参考了各种代码,写法如下。android监听器接口变量null

public CustomView bbv; 
bbv.setOnVariableChanged(new CustomView.VariableChanger() { //error(line:132) 
    @Override 
    public void onVariableChanged() { 
     real = true; 
    } 

}); 

VariableChanger onVariableChanged; 

run(){ 

    .... 
    if (count == 10) { 
     if (onVariableChanged != null) 
      onVariableChanged.onVariableChanged(); 
} 

public void setOnVariableChanged(VariableChanger listener) { 
    this.onVariableChanged = listener; 
} 

public interface VariableChanger { 
    void onVariableChanged(); 
} 

当计数为10,

bbv.setOnVariableChanged(新CustomView.VariableChanger()抛出一个错误。

我不知道什么是错的做。

感谢您的回答。


java.lang.NullPointerException: Attempt to invoke virtual method 'void hci.parrot_bebop.view.BebopVideoView.setOnVariableChanged(hci.parrot_bebop.view.BebopVideoView$VariableChanger)' on a null object reference 
    at hci.parrot_bebop.activity.BebopActivity$1$1.run(BebopActivity.java:132) 
    at java.util.Timer$TimerImpl.run(Timer.java:284) 

+0

'抛出error'哪个? –

+0

什么是错误日志 –

+0

请发布错误日志。 SO社区需要错误日志来回答任何问题。 –

回答

0

的Piyush的评论

我CustomView从TextureView继承。

所以在初始化部分 “CustomView BBV =新CustomView()” 不能使用。

但是,我可以通过findviewbyid()或使用new来初始化它。

等, “BBV =(CustomView)findViewById(R.id。您的视图ID)”