尝试在Android中的空对象引用上调用虚方法View.SetOnClickListener

时间:2016-10-01 00:09:31

标签: java android onclicklistener

我目前正在完善我一年前制作的应用程序,其中所有内容都在主要活动类中处理。我试图让它更加模块化,这样我就可以在这里和那里改变细节等等。但是,每当我尝试为一组按钮设置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作为参考。

有什么建议吗?

0 个答案:

没有答案