如何在Android中设置单选按钮

时间:2010-11-09 14:13:15

标签: android radio-button

我有一个使用单选按钮的应用。此按钮的默认值在main.xml文件中设置,即:

android:id="@+id/rb_sat1E"
android:checked="true"

在Java文件中我有:

final RadioButton radio1 = (RadioButton)findViewById(R.id.rb_sat1E);

我还在主Java文件中创建了一个“重置”按钮,可以使用以下代码重置TextView信息,即。

pos1_deg.setText("0.0");

但是如何重置单选按钮?我本以为它就像是

radio1.setBoolean("TRUE");

但这根本不起作用。

任何帮助非常感谢。感谢。

9 个答案:

答案 0 :(得分:89)

对于radioButton使用

radio1.setChecked(true);

只有一个RadioButton是没有意义的。如果你有更多这些,你需要通过

取消选中其他人
radio2.setChecked(false); ...

如果你的设置只是打开/关闭,请使用CheckBox。

答案 1 :(得分:89)

如果您想在代码中执行此操作,可以调用RadioGroup的检查成员:

radioGroup.check(R.id.radioButtonId);

这将检查您指定的按钮并取消选中其他按钮。

答案 2 :(得分:30)

或者您可以在XML文件中执行此操作:

RadioGroup 中使用:android:checkedButton="id_button_to_check"

RadioButton android:checked="true"

答案 3 :(得分:9)

只是为了澄清这一点:如果我们有一个RadioGroup有几个RadioButtons并且需要通过索引激活一个,则意味着:

radioGroup.check(R.id.radioButtonId)

radioGroup.getChildAt(index)`

我们可以这样做:

radioGroup.check(radioGroup.getChildAt(index).getId());

答案 4 :(得分:4)

如果你已经用XML完成了设计并希望在加载下面的页面时显示组中的一个复选框,那么解决方案可以帮助你

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txtLastNameSignUp"
        android:layout_margin="20dp"
        android:orientation="horizontal"
        android:id="@+id/radioGroup">
<RadioButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:checked="true"
    android:id="@+id/Male"
    android:text="Male"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/Female"
            android:text="Female"/>
        </RadioGroup>

答案 5 :(得分:0)

我有多个没有组的RadioButtons和setChecked(true)有效,但setChecked(false)不起作用。但是这段代码可行:

RadioButton switcher = (RadioButton) view.findViewById(R.id.active);
                        switcher.setOnClickListener(new RadioButton.OnClickListener(){
                            @Override
                            public void onClick(View v) {
                                if(((RadioButton)v).isSelected()){
                                    ((RadioButton)v).setChecked(false);
                                    ((RadioButton)v).setSelected(false);
                                } else {
                                    ((RadioButton)v).setChecked(true);
                                    ((RadioButton)v).setSelected(true);
                                }
                            }

                        });

答案 6 :(得分:0)

很多时候,如果您的单选按钮属于同一个radioGroup,那么

<强> radioButton.setChecked(真)

不会正确选择单选按钮。因此,要解决此问题,请尝试使用您的radioGroup。

<强> radioGroup.check(R.id.radioButtonId)

答案 7 :(得分:0)

使用此代码

    ((RadioButton)findViewById(R.id.radio3)).setChecked(true);

错误->不要忘记在setChecked()之前整体给出() ->如果您忘记这样做,则setChecked()对此单选按钮不可用

答案 8 :(得分:-1)

btnDisplay.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

            // get selected radio button from radioGroup
        int selectedId = radioSexGroup.getCheckedRadioButtonId();

        // find the radiobutton by returned id
            radioSexButton = (RadioButton) findViewById(selectedId);

        Toast.makeText(MyAndroidAppActivity.this,
            radioSexButton.getText(), Toast.LENGTH_SHORT).show();

    }

});