Android RadioGroup getCheckedRadioButtonId()

时间:2015-10-21 13:48:23

标签: android radio-group

我正在尝试检查是否在放射线组内至少检查了一个单选按钮。显然我可以选择一次检查每个,但根据Android开发者参考站点,public int getCheckedRadioButtonId()是radiogroup的公共方法,在空选时返回-1。所以这是我的代码

if(radioGroup.getCheckedRadioButtonId() == -1){
        Toast.makeText(getApplicationContext(),"Please make a selection",Toast.LENGTH_SHORT);
        return;
    }
 <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/radioGroup"
        android:layout_below="@id/loanPurposeTV">

        <RadioButton
            android:id="@+id/radioButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:text="Personal"
            android:checked="false" />

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toEndOf="@+id/radioButton"
            android:layout_toRightOf="@+id/radioButton"
            android:text="Bussiness" />

        <RadioButton
            android:id="@+id/radioButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/radioButton2"
            android:layout_toEndOf="@+id/radioButton2"
            android:layout_toRightOf="@+id/radioButton2"
            android:text="Option Three" />

        <RadioButton
            android:id="@+id/radioButton4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toEndOf="@+id/radioButton3"
            android:layout_toRightOf="@+id/radioButton3"
            android:text="Option Four" />

        <RadioButton
            android:id="@+id/radioButton5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toEndOf="@+id/radioButton4"
            android:layout_toRightOf="@+id/radioButton4"
            android:text="Other" />
    </RadioGroup>

但它没有按预期工作。有没有人知道为什么它不起作用或者更简单的方式来实现我的想法

1 个答案:

答案 0 :(得分:1)

首先,你忘了&#34; .show()&#34;当你打电话给你的Toast。

在个人情况下,我遇到了同样的问题(即使选择了无线电按钮,它总是返回-1),尽管有答案证明它有效,like this one

你可以尝试一下,但是,当我读到这篇文章的时候,我尽了一切努力,但我从未尝试过。当我遇到这个问题时,也许我太匆忙了。

否则,一个非常简单的解决方法是在布局加载时设置选定的默认单选按钮,因此,您确定将选择一个放射性按钮(并且在验证之前不再需要检查)

或者您可以创建一个初始化为false的bool var,只要选择了任何单选按钮,它就会设置为true(使用OnCheckChangeListener)。