如何在 Android 中通过 id 查找单选按钮?
How to find radio button by id in Android?
我在 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)
但是当我在 btn
上调用 setChecked()
方法时,这会抛出 nullPointerException。我错过了什么吗?
您没有指向任何一个单选按钮
您需要:
RadioButton btn = (RadioButton)findViewById(R.id.btn_1);
或
RadioButton btn = (RadioButton)findViewById(R.id.btn_2);
您只需在 RadioGroup 对象上调用 .findViewById()
。如果您将无线电组 ID 定义为 radioGroup
,您可以像这样访问单个按钮:
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
View radioButton = radioGroup.findViewById(R.id.btn_1);
其他有用的函数是 radioGroup.getChildAt(int)
RadioGroup rg= (RadioGroup) findViewById(R.id.your_RadioGroud_Id);
RadioButton rb= rg.findViewById(R.id.btn_1);
我在 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)
但是当我在 btn
上调用 setChecked()
方法时,这会抛出 nullPointerException。我错过了什么吗?
您没有指向任何一个单选按钮
您需要:
RadioButton btn = (RadioButton)findViewById(R.id.btn_1);
或
RadioButton btn = (RadioButton)findViewById(R.id.btn_2);
您只需在 RadioGroup 对象上调用 .findViewById()
。如果您将无线电组 ID 定义为 radioGroup
,您可以像这样访问单个按钮:
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
View radioButton = radioGroup.findViewById(R.id.btn_1);
其他有用的函数是 radioGroup.getChildAt(int)
RadioGroup rg= (RadioGroup) findViewById(R.id.your_RadioGroud_Id);
RadioButton rb= rg.findViewById(R.id.btn_1);