如何取消选中另一个单选组中的单选按钮?
How to uncheck a radio button in another radio group?
我在一个 xml 文件中有两个无线电组:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<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>
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/btn_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked" />
<RadioButton
android:id="@+id/btn_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked" />
</RadioGroup>
</LinearLayout>
在主要的 activity 中,我可以通过实现 onRadioButtonClicked()
方法来处理点击侦听器上的单选按钮:
public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
case R.id.btn_1:
break;
case R.id.R.id.btn_2:
break;
case R.id.R.id.btn_3:
break;
case R.id.R.id.btn_4:
break;
}
}
现在,在同一个单选按钮组中,如果一个单选按钮被选中,另一个将自动取消选中。所以这是我的问题:我希望如果选中一个按钮,则取消选中同一组和另一组中的其他按钮。这可行吗?
谢谢
您可以手动完成。
case R.id.btn_1:
btn3.setChecked(false);
btn4.setChecked(false);
break;
case R.id.btn_2:
btn3.setChecked(false);
btn4.setChecked(false);
break;
case R.id.btn_3:
btn1.setChecked(false);
btn2.setChecked(false);
break;
case R.id.btn_4:
btn1.setChecked(false);
btn2.setChecked(false);
break;
希望对您有所帮助。
我在一个 xml 文件中有两个无线电组:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<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>
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/btn_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked" />
<RadioButton
android:id="@+id/btn_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onRadioButtonClicked" />
</RadioGroup>
</LinearLayout>
在主要的 activity 中,我可以通过实现 onRadioButtonClicked()
方法来处理点击侦听器上的单选按钮:
public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
case R.id.btn_1:
break;
case R.id.R.id.btn_2:
break;
case R.id.R.id.btn_3:
break;
case R.id.R.id.btn_4:
break;
}
}
现在,在同一个单选按钮组中,如果一个单选按钮被选中,另一个将自动取消选中。所以这是我的问题:我希望如果选中一个按钮,则取消选中同一组和另一组中的其他按钮。这可行吗? 谢谢
您可以手动完成。
case R.id.btn_1:
btn3.setChecked(false);
btn4.setChecked(false);
break;
case R.id.btn_2:
btn3.setChecked(false);
btn4.setChecked(false);
break;
case R.id.btn_3:
btn1.setChecked(false);
btn2.setChecked(false);
break;
case R.id.btn_4:
btn1.setChecked(false);
btn2.setChecked(false);
break;
希望对您有所帮助。