我正在尝试检查是否在放射线组内至少检查了一个单选按钮。显然我可以选择一次检查每个,但根据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>
但它没有按预期工作。有没有人知道为什么它不起作用或者更简单的方式来实现我的想法
答案 0 :(得分:1)
首先,你忘了&#34; .show()&#34;当你打电话给你的Toast。
在个人情况下,我遇到了同样的问题(即使选择了无线电按钮,它总是返回-1),尽管有答案证明它有效,like this one
你可以尝试一下,但是,当我读到这篇文章的时候,我尽了一切努力,但我从未尝试过。当我遇到这个问题时,也许我太匆忙了。
否则,一个非常简单的解决方法是在布局加载时设置选定的默认单选按钮,因此,您确定将选择一个放射性按钮(并且在验证之前不再需要检查)
或者您可以创建一个初始化为false的bool var,只要选择了任何单选按钮,它就会设置为true(使用OnCheckChangeListener)。