gpt4 book ai didi

java - 在 Android 应用程序中处理新 Activity 时出现 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 21:47:53 25 4
gpt4 key购买 nike

我的代码如下,我认为它与我的 if/else 语句有关。本质上,我想确保在打开下一页之前检查一组中至少有一个单选按钮。一旦它起作用,我将对其进行设置,以便如果未选中组中的单选按钮之一,那么它将显示一条错误消息。

    public void onClickListenerButton() {
radioGroup_gender = (RadioGroup) findViewById(R.id.radioGroup_gender);
radioGroup_course = (RadioGroup) findViewById(R.id.radioGroup_course);
button_splits = (Button)findViewById(R.id.button_splits);

button_splits.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("com.idealsplit.admin.idealsplit.ResultsActivity");
int selectedID_gender = radioGroup_gender.getCheckedRadioButtonId();
int selectedID_course = radioGroup_course.getCheckedRadioButtonId();
radioButton_gender = (RadioButton) findViewById(selectedID_gender);
radioButton_course = (RadioButton) findViewById(selectedID_course);

CharSequence gender, courseType, age, event, time;

if (selectedID_gender == -1) {
//Throw Error
isNull = true;
} else if (selectedID_course == -1) {
//Throw Error
isNull = true;
} else {
courseType = radioButton_course.getText();
gender = radioButton_gender.getText();
startActivity(intent);

}
}

}
);
}

这是日志猫:

03-01 08:52:22.060 19234-19234/com.idealsplit.admin.idealsplit E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.idealsplit.admin.idealsplit, PID: 19234
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.idealsplit.admin.idealsplit/com.idealsplit.admin.idealsplit.ResultsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2358)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
at android.app.ActivityThread.access$900(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5294)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.idealsplit.admin.idealsplit.ResultsActivity.onCreate(ResultsActivity.java:96)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420) 
at android.app.ActivityThread.access$900(ActivityThread.java:154) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5294) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 

感谢您提供的所有帮助,如果需要更多信息,请告诉我!

**如果有帮助的话,我正在关注这个YouTube教程:https://www.youtube.com/watch?v=3f0NAn5xFy4

最佳答案

看起来button_splits为null,因此(Button)findViewById(R.id.button_splits);返回null。

确保 View R.id.button_splits 存在。附加到此 Activity 的 View 上必须有一个 ID 为“button_splits”的按钮。

What is a Null Pointer Exception

您还可以通过在添加监听器之前确保按钮不为 null 来阻止此 NPE 发生,但如果按钮为 null,则不会添加监听器。

if (button_splits != null) {
button_splits.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("com.idealsplit.admin.idealsplit.ResultsActivity");
int selectedID_gender = radioGroup_gender.getCheckedRadioButtonId();
int selectedID_course = radioGroup_course.getCheckedRadioButtonId();
radioButton_gender = (RadioButton) findViewById(selectedID_gender);
radioButton_course = (RadioButton) findViewById(selectedID_course);

CharSequence gender, courseType, age, event, time;

if (selectedID_gender == -1) {
//Throw Error
isNull = true;
} else if (selectedID_course == -1) {
//Throw Error
isNull = true;
} else {
courseType = radioButton_course.getText();
gender = radioButton_gender.getText();
startActivity(new Intent(getApplicationContext(), ResultsActivity.class));
startActivity(intent);

}
}

}
);
}

关于java - 在 Android 应用程序中处理新 Activity 时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35726247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com