如何在 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);