我在xml文件中有一个带单选按钮的广播组:
<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/btn_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked" />
<RadioButton
android:id="@+id/btn_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked" />
</RadioGroup>
如何通过ID获取单选按钮?我试过了:
RadioButton btn = (RadioButton)findViewById(R.id.btn_1)
但是当我在setChecked()
上调用btn
方法时,会抛出nullPointerException。我错过了什么吗?
答案 0 :(得分:2)
您只需要在RadioGroup对象上调用.findViewById()
即可。如果您将广播组ID定义为radioGroup
,则可以按如下方式访问单个按钮:
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
View radioButton = radioGroup.findViewById(R.id.btn_1);
其他有用的功能是radioGroup.getChildAt(int)
答案 1 :(得分:1)
您没有指向任何一个单选按钮
您需要:
RadioButton btn = (RadioButton)findViewById(R.id.btn_1);
或
RadioButton btn = (RadioButton)findViewById(R.id.btn_2);
答案 2 :(得分:1)
RadioGroup rg= (RadioGroup) findViewById(R.id.your_RadioGroud_Id);
RadioButton rb= rg.findViewById(R.id.btn_1);