获取无线电组值的正确方法



一个完整的java菜鸟,所以我这样做的方法可能是错误的,但是我正在获取单选组中单选按钮的值并将其与值进行比较,这似乎在大多数情况下都是有效的,但我有间歇性崩溃:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.RadioButton.getText()' on a null object reference 

它指向此行:

String selection = rb.getText().toString();

我有以下 java 代码:

RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroupAdd);
Integer checkedID = radioGroup.getCheckedRadioButtonId();
RadioButton rb = (RadioButton) findViewById(checkedID);
String selection = rb.getText().toString();
if (selection.equals("Paint")) {
 //Do stuff here
}

有没有更好的方法

如果未选择单选按钮,则getCheckedRadioButtonId()返回 -1。所以你的findViewById()会返回null.

http://developer.android.com/reference/android/widget/RadioGroup.html#getCheckedRadioButtonId()

你可以用空指针检查来包装getText()和下面的代码,但至于"有什么更好的方法可以做到这一点?"你的问题中没有太多细节来回答这个问题,而且可能太宽泛了。

最新更新