如何在 Android 中设置单选按钮
Posted
技术标签:
【中文标题】如何在 Android 中设置单选按钮【英文标题】:How to set a radio button in Android 【发布时间】:2011-05-07 06:46:16 【问题描述】:我有一个使用单选按钮的应用。此按钮的默认设置在 main.xml 文件中,即:
android:id="@+id/rb_sat1E"
android:checked="true"
在我拥有的 Java 文件中:
final RadioButton radio1 = (RadioButton)findViewById(R.id.rb_sat1E);
我还在 Java 主文件中创建了一个“重置”按钮,可以使用以下代码重置 TextView 信息,即。
pos1_deg.setText("0.0");
但是如何重置单选按钮?我本来以为是这样的
radio1.setBoolean("TRUE");
但这根本不起作用。
非常感谢任何帮助。谢谢。
【问题讨论】:
【参考方案1】:单选按钮使用
radio1.setChecked(true);
只有一个 RadioButton 是没有意义的。如果您有更多,则需要通过
取消选中其他人radio2.setChecked(false); ...
如果您的设置只是开/关,请使用 CheckBox。
【讨论】:
对于可能发现自己处于我的位置的其他读者:setChecked (true) 与 setSelected (true) 完全不同。确认。【参考方案2】:如果你想在代码中做,可以调用 RadioGroup 的 check 成员:
radioGroup.check(R.id.radioButtonId);
这将检查您指定的按钮并取消选中其他按钮。
【讨论】:
谢谢 :) 这对我来说是更好的答案;正是我想要的。 radioGroup.check(radioGroup.getChildAt(0).getId()); - 检查列表中的第一项 我同意。请这样做。【参考方案3】:或者您可以在 XML 文件中执行此操作:
在 RadioGroup 中使用:android:checkedButton="id_button_to_check"
或在 RadioButton 中:android:checked="true"
【讨论】:
当我在 xml 中选中单选按钮时,我以后无法取消选中它。就像从组中删除了单选按钮 对不起,我迟到了,但这是单选按钮的预期行为。当您选择它时,您无法取消选择它,除非选择无线电组中的另一个单选按钮 我们可以通过调用 check(-1) 或 clearCheck() 来清除选择。【参考方案4】:澄清一下:如果我们有一个RadioGroup
和几个RadioButtons
并且需要通过索引激活一个,则意味着:
radioGroup.check(R.id.radioButtonId)
和
radioGroup.getChildAt(index)`
我们可以这样做:
radioGroup.check(radioGroup.getChildAt(index).getId());
【讨论】:
【参考方案5】:如果您已经在 XML 中完成了设计,并且希望在加载页面时将组中的复选框之一显示为选中状态,则以下解决方案可以帮助您
<RadioGroup
android:layout_
android:layout_
android:layout_below="@+id/txtLastNameSignUp"
android:layout_margin="20dp"
android:orientation="horizontal"
android:id="@+id/radioGroup">
<RadioButton
android:layout_
android:layout_
android:checked="true"
android:id="@+id/Male"
android:text="Male"/>
<RadioButton
android:layout_
android:layout_
android:id="@+id/Female"
android:text="Female"/>
</RadioGroup>
【讨论】:
【参考方案6】:很多时候,如果您的单选按钮属于同一个 radioGroup,那么
radioButton.setChecked(true)
不会正确选择单选按钮。因此,要解决此问题,请尝试使用您的 radioGroup。
radioGroup.check(R.id.radioButtonId)
【讨论】:
【参考方案7】:使用此代码
((RadioButton)findViewById(R.id.radio3)).setChecked(true);
错误 -> 不要忘记在 setChecked() 之前给整个 () -> 如果你忘记了 setChecked() 对这个单选按钮不可用
【讨论】:
【参考方案8】:我有多个没有组的 RadioButtons,setChecked(true)
有效,但 setChecked(false)
无效。但是这段代码有效:
RadioButton switcher = (RadioButton) view.findViewById(R.id.active);
switcher.setOnClickListener(new RadioButton.OnClickListener()
@Override
public void onClick(View v)
if(((RadioButton)v).isSelected())
((RadioButton)v).setChecked(false);
((RadioButton)v).setSelected(false);
else
((RadioButton)v).setChecked(true);
((RadioButton)v).setSelected(true);
);
【讨论】:
【参考方案9】:btnDisplay.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
// get selected radio button from radioGroup
int selectedId = radiosexGroup.getCheckedRadioButtonId();
// find the radiobutton by returned id
radioSexButton = (RadioButton) findViewById(selectedId);
Toast.makeText(MyAndroidAppActivity.this,
radioSexButton.getText(), Toast.LENGTH_SHORT).show();
);
【讨论】:
你能解释一下为什么 OP 应该使用你的代码吗?以上是关于如何在 Android 中设置单选按钮的主要内容,如果未能解决你的问题,请参考以下文章
HTMLHTML 注册表单案例 ① ( 表格设置 | 设置表格位置和大小 | 设置表格标题 | 表单设置 | 表格中设置单选按钮 )