检查从android中的每个radiogroup中至少选择一个单选按钮?
Posted
技术标签:
【中文标题】检查从android中的每个radiogroup中至少选择一个单选按钮?【英文标题】:Checking at least one radio button is selected from each radiogroup in android? 【发布时间】:2014-02-07 19:48:28 【问题描述】:如何确保每个单选组中至少检查了一个单选按钮。就像我有这个广播组:
<RadioGroup
android:id="@+id/myradio_group_one"
android:layout_
android:layout_
android:orientation="horizontal" >
<RadioButton
android:layout_
android:layout_
android:text="first"
android:checked="true" />
<RadioButton
android:layout_
android:layout_
android:text="second" />
<RadioButton
android:layout_
android:layout_
android:text="third" />
<RadioButton
android:layout_
android:layout_
android:text="fourt" />
</RadioGroup>
<RadioGroup
android:id="@+id/myradio_group_two"
android:layout_
android:layout_
android:orientation="horizontal" >
<RadioButton
android:layout_
android:layout_
android:text="first"
android:checked="true" />
<RadioButton
android:layout_
android:layout_
android:text="second" />
<RadioButton
android:layout_
android:layout_
android:text="third" />
<RadioButton
android:layout_
android:layout_
android:text="fourt" />
</RadioGroup>
我想以编程方式检查用户是否至少选择了一个单选按钮?
【问题讨论】:
【参考方案1】:获取RadioGroup
的引用,然后在无线电组上调用getCheckedRadioButtonId()
,如果未选择任何内容,则调用将返回-1
。
见public int getCheckedRadioButtonId ()
【讨论】:
【参考方案2】:RadioGroup g = (RadioGroup) findViewById(R.id.rBtnDigits);
// Returns an integer which represents the selected radio button's ID
int selected = g.getCheckedRadioButtonId();
// Gets a reference to our "selected" radio button
RadioButton b = (RadioButton) findViewById(selected);
// Now you can get the text or whatever you want from the "selected" radio button
b.getText();
【讨论】:
不是来自 xml,我需要以编程方式。【参考方案3】:if (radioGroup.getCheckedRadioButtonId() != -1)
// hurray at-least on radio button is checked.
else
// pls select at-least one radio button.. since id is -1 means no button is check
【讨论】:
【参考方案4】:这是我在我的一个测验应用程序中使用的代码。如果有帮助,请查看代码。
private boolean checkAnswer()
String answer = getSelection();
if(answer==null)
Log.d("Questions", "No checkbox selected");
return false;
else
// Do your stuff here
return true;
private String getSelection()
if (c1.isChecked())
return c1.getText().toString();
if (c2.isChecked())
return c2.getText().toString();
if (c3.isChecked())
return c3.getText().toString();
if (c4.isChecked())
return c4.getText().toString();
return null;
【讨论】:
【参考方案5】:你可以用这个方法
radioGroup.getCheckedRadioButtonId();
它返回该组中选定单选按钮的标识符。空选时,返回值为-1。
如文档https://developer.android.com/reference/android/widget/RadioGroup.html#getCheckedRadioButtonId()中所述
【讨论】:
以上是关于检查从android中的每个radiogroup中至少选择一个单选按钮?的主要内容,如果未能解决你的问题,请参考以下文章
Android RadioGroup getCheckedRadioButtonId()
如何将RadioGroup元素的ID转换为Android studio中的字符串?