如何在 Android 中设置单选按钮

我有一个使用单选按钮的应用程序,这个按钮的默认设置在 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");

但这根本行不通。

非常感谢你的帮助,谢谢。

153419 次浏览

用于无线电按钮

radio1.setChecked(true);

只有一个 RadioButton 是没有意义的。如果你有更多这样的人,你需要通过解除检查其他人

radio2.setChecked(false); ...

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

或者可以在 XML 文件中进行:

电台集团中使用: android:checkedButton="id_button_to_check"

或者在 无线电按钮: android:checked="true"

如果你想用代码来做,你可以打电话给 RadioGroup 的复选成员:

radioGroup.check(R.id.radioButtonId);

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

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

radioGroup.check(R.id.radioButtonId)

还有

radioGroup.getChildAt(index)`

我们可以做到:

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

如果您已经使用 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>
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();


}


});

我有多个收音机按钮没有组和 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);
}
}


});

很多时候,如果你的单选按钮属于同一个无线电组那么

SetChecked (true)

无法正确选择单选按钮。因此,为了解决这个问题,请尝试使用您的 RadiGroup。

Check (R.id.radiButtonId)

用这个密码

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

Error-> 不要忘记在 setChecked ()之前给出() for whole - > 如果你忘记这样做,setChecked ()是不可用的这个单选按钮