Android RadioGroup getCheckedRadioButtonId()
Posted
技术标签:
【中文标题】Android RadioGroup getCheckedRadioButtonId()【英文标题】: 【发布时间】:2016-01-20 13:20:48 【问题描述】:我正在尝试检查单选按钮是否在单选组内被选中。显然我可以选择一次检查每一个,但根据 android 开发者参考网站,public int getCheckedRadioButtonId () 是 radiogroup 的公共方法,它在空选时返回 -1。所以这是我的代码
if(radioGroup.getCheckedRadioButtonId() == -1)
Toast.makeText(getApplicationContext(),"Please make a selection",Toast.LENGTH_SHORT);
return;
<RadioGroup
android:layout_
android:layout_
android:id="@+id/radioGroup"
android:layout_below="@id/loanPurposeTV">
<RadioButton
android:id="@+id/radioButton"
android:layout_
android:layout_
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_
android:layout_
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/radioButton"
android:layout_toRightOf="@+id/radioButton"
android:text="Bussiness" />
<RadioButton
android:id="@+id/radioButton3"
android:layout_
android:layout_
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_
android:layout_
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_
android:layout_
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/radioButton4"
android:layout_toRightOf="@+id/radioButton4"
android:text="Other" />
</RadioGroup>
但它没有按预期工作。有谁知道为什么它不起作用或实现我的想法的更简单的方法
【问题讨论】:
具体是什么不起作用?它总是-1吗? “但它没有按预期工作”——请解释您的确切症状。还请说明您是如何设置RadioButtons
和RadioGroup
。
@ElliotM 如果我没有选择单选组中的任何单选按钮,则 toast 应该显示该消息不起作用。
我们需要查看您设置广播组的代码。
@ElliotM i jst 用 xml 代码更新了我的问题
【参考方案1】:
首先,您在调用 Toast 时忘记了“.show()”。
就个人而言,我遇到了同样的问题(它总是返回-1,即使选择了单选按钮),尽管有答案证明它有效,like this one
您可以尝试它们,但老实说,当我读到这篇文章时,我尝试了所有方法,但从未成功。可能是我遇到这个问题的时候太着急了。
否则,一个非常简单的解决方法是在布局加载时设置一个默认单选按钮,因此,您确定会有一个单选按钮被选中(并且在验证之前不再需要检查)
或者您可以创建一个初始化为 false 的 bool var,一旦选择任何单选按钮(使用 OnCheckChangeListener)就会设置为 true。
【讨论】:
有时你只是想太多以至于你最终忽略了很少的事情,谢谢伙计。没有意识到我没有展示吐司。 我理解@KBJ,它甚至发生在最好的情况下:) 在使用onCheckChangeListener时,你能得到带有id的单选按钮的字符串吗?或者我必须这样做。以上是关于Android RadioGroup getCheckedRadioButtonId()的主要内容,如果未能解决你的问题,请参考以下文章
android如何实现代码控制RadioGroup中某一个按钮选中
android如何实现代码控制RadioGroup中某一个按钮选中