我正在尝试在更新整数值时触发事件,但失败了。这是我正在使用的代码:
声明自定义监听器
public class fieldactivity extends AppCompatActivity implements View.OnClickListener {
OnModeUpdate modeupdate; //Create custom listener for mode update
int mode = 1;
模式更新代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fieldsignals);
Button button = (Button) findViewById(R.id.mode_rotate_button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case(R.id.rotate_button):
mode += 1;
modeupdate.onEvent(); //Fire Custom Lisentener - Fails On This Line
}
}
接口代码
public interface OnModeUpdate {
//BreakPoint here, but is never reached
void onEvent();
}
public void setModeupdate(OnModeUpdate eventListener) {
modeupdate = eventListener;
}
我得到的错误是:
java.lang.NullPointerException:尝试调用接口方法
'无效
alveare.com.plcsignalconverter.fieldactivity $ OnModeUpdate.onEvent()'
在空对象引用上
我有什么想念的吗?
最佳答案
NullPointerException是由对空的Referenc对象(该对象尚未初始化)调用方法引起的。
在您的情况下,空对象是modeUpdate
。尝试在活动的onCreate()
中对其进行初始化。
modeupdate = new OnModeUpdate() {
@Override
public void onEvent() {
/**
* Write the code to handle the case
*/
}
};