从RadioButton设置值时出错

时间:2018-02-14 13:09:26

标签: android android-radiobutton

尝试将值设置为RadioButton的变量时,我一直收到错误消息。错误如下:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.aquino.myapp3, PID: 17484
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.RadioButton.getText()' on a null object reference
    at com.example.aquino.myapp3.activities.MainActivity.postDataToSQLite(MainActivity.java:114)
    at com.example.aquino.myapp3.activities.MainActivity.onClick(MainActivity.java:92)
    at android.view.View.performClick(View.java:4780)

logcat指示错误的行似乎是这样的:

measurement.setBodyPlace(radioButton.getText().toString());

我已初步化了观点:

RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radioGroup);
RadioButton radioButton = (RadioButton)findViewById(radioGroup.getCheckedRadioButtonId());

measurementMeasurement类的实例化,如下所示:

public class Measurement{
    private String rbBodyPlace;

    public void setBodyPlace(String rbBodyPlace){
        this.rbBodyPlace = rbBodyPlace;
    }
}

欢迎任何帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

您尚未初始化单选按钮。

编辑(感谢@Tura):

在Activity中的onCreate()中尝试这个:

radioButton = findViewById(R.id.radio_button);

使用xml文件中描述的ID填充id部分。

答案 1 :(得分:0)

该错误是因为同时初始化RadioGroup和RadioButton(也是选择的id),即在用户选择任何单选按钮之前。这就是android系统返回null值的原因。为了解决这个错误,我先做了RadioGroup的初始化,然后我在用户点击/做了一些动作后才初始化了RadioButton。