如何在Android中通过id找到单选按钮?

时间:2017-08-28 14:23:02

标签: android radio-button findviewbyid

我在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。我错过了什么吗?

3 个答案:

答案 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);