只是想知道是否有人知道是否有一个radiogroup或radiobutton属性或其他快速的东西,这将允许在他们处于检查模式时取消选中单选按钮。我正在寻找像无线电组一样工作的功能(即只能检查一个),但我也希望它们能够全部未经检查。
答案 0 :(得分:11)
也许我没有在这里得到问题,但这是我想做的事情。我有一个活动,我用它来分类很多图片。我正在使用单选按钮进行分类。在用户检查其中一个选项后,他可以用下一张图片切换。我需要在切换图片时清除选择,但决定不创建新活动。
所以我在布局中初始化我的无线电组:
<RadioGroup
android:id="@+id/radio_selection"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/radio_true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="@string/true" />
<RadioButton
android:id="@+id/radio_false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="@string/false" />
</RadioGroup>
这会初始化我的广播组,并且最初未选择RadioButton
。之后当我更改图片时,我需要清除选择(因为用户尚未选择新图片)。我喜欢这样:
RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radio_selection);
radioGroup.clearCheck();
这正是我所需要的:再次制作没有选中的单选按钮。我希望我能理解这个问题,这将有助于将来的某些人。
答案 1 :(得分:3)
您可以使用CheckBox来模仿您想要的功能,如下所示。代码假定您有两个复选框,但您可以有两个以上。
public void onClick(View v) {
int id = v.getId();
if (id == R.id.checkBox1) {
// Toggle status of checkbox selection
checkBox1Selected = checkBox1.isChecked();
// Ensure that other checkboxes are not selected
if (checkBox2Selected) {
checkBox2.setChecked(false);
checkBox2Selected = false;
}
else if (id == R.id.checkBox2) {
// Toggle status of checkbox selection
checkBox2Selected = checkBox2.isChecked();
// Ensure that other checkboxes are not selected
if (checkBox1Selected) {
checkBox1.setChecked(false);
checkBox1Selected = false;
}
}