我目前正在完善我一年前制作的应用程序,其中所有内容都在主要活动类中处理。我试图让它更加模块化,这样我就可以在这里和那里改变细节等等。但是,每当我尝试为一组按钮设置onClickListener时,我都会收到错误:
AVPlayer
我的活动的基本设置是一个按钮,表示" start"无论何时单击它,它都会变为不可见,然后其他15个按钮变为可见。 我创建了一个自定义onClickListener,我简单地命名为ClickListener,如下所示:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
供参考,这是我的ButtonChanger类的一部分:
public class ClickListener implements View.OnClickListener {
Activity a;
Context c;
ButtonChanger bc;
public ClickListener(Activity a, Context c, ButtonChanger bc) {
this.a = a;
this.c = c;
this.bc = bc;
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.start_button:
bc.toggleButtons();
break;
default:
break;
}
}
}
我的Buttons类基本上只用于存储示例中的MyButton对象数组,而我的MyButton类基本上只存储相关按钮视图的id。 (他们在这个问题之外还有许多其他功能)
我在这里尝试在主要活动中设置onClickListener:
public class ButtonChanger {
public Buttons buttons;
private Activity activity;
private Context context;
public ButtonChanger(Activity activity, Context context) {
this.activity = activity;
this.context = context;
this.buttons = new Buttons();
}
public void toggleButtons() {
// unimportant to issue... basically toggles visibility of buttons
}
}
错误指向我所做的行但是.setOnClickListener(...),即使是我刚刚使用R.id.start_button的那个。因此,不存在未在MyButton对象中正确保存的id的问题。我相信它与我的自定义ClickListener有关,但我不确定是什么。每当我创建ClickListener类时,我都使用this question作为参考。
有什么建议吗?