【发布时间】:2017-02-18 07:27:04
【问题描述】:
我试图在更新整数值时触发一个事件,但它失败了。这是我正在使用的代码:
声明自定义监听器
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()' 在空对象引用上
我有什么遗漏吗?
【问题讨论】:
-
你从未初始化过
modeupdate。您可以查看 this answer 以了解该模式的工作原理。 -
你应该在一些活动中实现 OnModeUpdate 并在 onEvent() 方法中定义要做什么
-
你从未调用过
setModeupdate,也从未实现过接口
标签: java android design-patterns listener observer-pattern