我正在尝试让我的点击方法监听提交按钮,并检查选中了哪些复选框来加载基于该复选框的特定 Activity ,这是我用于此功能的代码,但它不断使我的 Android 应用程序崩溃。有人可以指出我可能做错了什么吗?请忽略任何拼写或语法错误,因为我患有阅读障碍。
if (v.getId() == R.id.submit) {
Intent intent = new Intent(ModeSelect.this, OnePSetup.class);
if (checkBox.isChecked()){
startActivity(intent);
System.out.println("checked");
}
}
这是输出错误
11-14 15:36:09.820 12457-12478/allanwalls1304988.straight4 E/Surface﹕ getSlotFromBufferLocked: unknown buffer: 0xb4057be0
11-14 15:36:11.952 12457-12457/allanwalls1304988.straight4 E/AndroidRuntime:致命异常:main 进程:allanwalls1304988.straight4,PID:12457 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“boolean android.widget.CheckBox.isChecked()” 在 allanwalls1304988.straight4.ModeSelect.onClick(ModeSelect.java:58) 在 android.view.View.performClick(View.java:5198) 在 android.view.View$PerformClick.run(View.java:21147) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5417) 在 java.lang.reflect.Method.invoke( native 方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
最佳答案
从您发布的堆栈跟踪中,错误位于 ModeSelect.java 第 58 行,错误发生在该行 checkBox.isChecked()
的执行上。看来您还没有初始化 checkBox
这导致它抛出 NullPointerException。你可以像这样初始化它:
CheckBox checkBox = (CheckBox) findViewById(R.id.myCheckBox);
希望这有帮助。
关于java - 我如何单击以检查选中了哪些复选框以及是否按下了按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33709992/