如何在Android的radiogroup中将单选按钮设置为默认值

San*_*ndy 123 android radio-group radio-button

我已创建 RadioGroupRadioButton动态如下

RadioGroup radioGroup = new RadioGroup(context);
                    RadioButton radioBtn1 = new RadioButton(context);
                    RadioButton radioBtn2 = new RadioButton(context);
                    RadioButton radioBtn3 = new RadioButton(context);

                    radioBtn1.setText("Less");
                    radioBtn2.setText("Normal");
                    radioBtn3.setText("More");

                    radioBtn2.setChecked(true);

                    radioGroup.addView(radioBtn1);
                    radioGroup.addView(radioBtn2);
                    radioGroup.addView(radioBtn3);
Run Code Online (Sandbox Code Playgroud)

这一步radioBtn2.setChecked(true);会导致radioBtn2总检查.这意味着我无法radioBtn2通过检查其他两个单选按钮(radioBtn1,radioBtn3)取消选中.我想这样做一次RadioGroup只能检查一个单选按钮(现在它可以一次检查两个单选按钮).我怎么解决这个问题?

Spr*_*igg 202

你应该像这样检查radiogroup中的radiobutton:

radiogroup.check(IdOfYourButton)

当然,您首先必须为您的单选按钮设置ID

编辑:我忘了,radioButton.getId()也可以,拉克什

  • 或者如果您不想识别您的`RadioButton`并且您知道可以使用的索引**((RadioButton)radioGroup.getChildAt(INDEX)).setChecked(true);** (38认同)
  • 你不应该这样做.这将导致此问题中描述的"setChecked"问题.当然有一些方法可以在没有你的按钮的情况下做到这一点,但请不要使用`setChecked()`一种方法是`radiogroup.check(((RadioButton)radioGroup.getChildAt(INDEX)).getId())`或类似的东西 (17认同)

Iro*_*som 110

如果对XML属性的android:checkedButton它接受idRadioButton情况进行检查.

<RadioGroup
...
...
android:checkedButton="@+id/IdOfTheRadioButtonInsideThatTobeChecked"
... >....</RadioGroup>
Run Code Online (Sandbox Code Playgroud)


Sar*_*ara 50

在XML文件中设置android:checkedButton您的字段RadioGroup,其默认值为RadioButton:

<RadioGroup
    ....
    android:checkedButton="@+id/button_1">

    <RadioButton
        android:id="@+id/button_1"
        ...../>

    <RadioButton
        android:id="@+id/button_2"
        ...../>

    <RadioButton
        android:id="@+id/button_3"
        ...../>
</RadioGroup>
Run Code Online (Sandbox Code Playgroud)


Ram*_*nki 19

    RadioGroup radioGroup = new RadioGroup(WvActivity.this);
    RadioButton radioBtn1 = new RadioButton(this);
    RadioButton radioBtn2 = new RadioButton(this);
    RadioButton radioBtn3 = new RadioButton(this);

    radioBtn1.setText("Less");
    radioBtn2.setText("Normal");
    radioBtn3.setText("More");


    radioGroup.addView(radioBtn1);
    radioGroup.addView(radioBtn2);
    radioGroup.addView(radioBtn3);

    radioGroup.check(radioBtn2.getId());
Run Code Online (Sandbox Code Playgroud)


小智 6

RadioGroup radioGroup = new RadioGroup(context);
RadioButton radioBtn1 = new RadioButton(context);
RadioButton radioBtn2 = new RadioButton(context);
RadioButton radioBtn3 = new RadioButton(context);

radioBtn1.setText("Less");
radioBtn2.setText("Normal");
radioBtn3.setText("More");

radioGroup.addView(radioBtn1);
radioGroup.addView(radioBtn2);
radioGroup.addView(radioBtn3);
radioBtn2.setChecked(true);
Run Code Online (Sandbox Code Playgroud)