可以在Android应用中取消选中所有单选按钮吗?

时间:2011-06-22 02:27:17

标签: android radio-button radio-group

只是想知道是否有人知道是否有一个radiogroup或radiobutton属性或其他快速的东西,这将允许在他们处于检查模式时取消选中单选按钮。我正在寻找像无线电组一样工作的功能(即只能检查一个),但我也希望它们能够全部未经检查。

2 个答案:

答案 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;
        }
}