android的radiogroup为啥选择两个
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android的radiogroup为啥选择两个相关的知识,希望对你有一定的参考价值。
项目中遇到多个RadioGroup中单选RadioButton ,设置了默认选中第一个 . 然后就 能选中两个RadioButton . . ..我开始这样给设置默认选中一个的:
for (int j = 0; j < newList.get(position).getList().size(); j++)
RadioButton radioButton = new RadioButton(context);
radioButton.setTextSize(9);
radioButton.setText(newList.get(position).getList().get(j)
.get("dishname").toString());
radioButton.setTag(newList.get(position).getList().get(j)
.get("dishid").toString());
radioGroup.addView(radioButton, j);
if (j==0)
radioButton.setCheck(true);
就是中给radioButton设置为选中.. .
网上查找了下类似的情况 如 这篇文章 ,都没有解决我的问题.
最后研究了下 android 官方Api 和部分 RadioGroup的源代码 后发现. 其实很简单
我们不需要设置RadioButton的默认选中, 这样会使RadioButton一直处于选中状态.
我们应该给RadioGroup 设置选中的RadioButton ,也就是说
把 if (j==0)
radioButton.setCheck(true);
更改为
if (j==0)
radioGroup.check(radioButton.getId());
轻松搞定.. 哎呦了个去,官方Api和源码是个好东西啊. 参考技术A 两个radiogroup,可以选择两个分类。
radiogroup是控制单选的,每个radiogroup包含多个radiobutton,但是只能有一个是选中状态。
多个分类,需要设置多个radiogroup。 参考技术B 你是写在list上面吧
Android:为啥 Radio Group 中的 Radio Button 总是为任何选定的项目返回 false?
【中文标题】Android:为啥 Radio Group 中的 Radio Button 总是为任何选定的项目返回 false?【英文标题】:Android: Why Radio Button in Radio Group always returns false for any item selected?Android:为什么 Radio Group 中的 Radio Button 总是为任何选定的项目返回 false? 【发布时间】:2014-06-13 20:50:19 【问题描述】:我在一个单选组中有两个单选按钮,当我选择任何单选按钮并尝试使用 isselected 方法获取布尔值时,我总是得到错误值。 为什么会这样。请帮助我。
【问题讨论】:
检查 isChecked 属性:***.com/a/11050112/2649012 @BobMalooga 感谢它的工作。 【参考方案1】:我也遇到了同样的问题,isSelected 方法不起作用。 isChecked 方法对我有用:
if( myRadioButton.isChecked() )
// do stuff
else
// do other stuff
【讨论】:
【参考方案2】:使用这个:
int selectedRbBtn = radiogroup.getCheckedRadioButtonId();
如果它返回 -1
则没有选择任何内容...
【讨论】:
【参考方案3】:也许这会有所帮助
int radioButtonID = radioButtonGroup.getCheckedRadioButtonId();
View radioButton = radioButtonGroup.findViewById(radioButtonID);
然后使用单选按钮执行您想要的任何任务。
来源:Link
【讨论】:
【参考方案4】:使用这个:
radioButton.setOnCheckedChangeListener(new OnCheckedChangeListener()
public void onCheckedChanged(CompoundButton btn, boolean isCheck)
//handle the boolean flag here.
if(isCheck==true)
//Do something
else
//do something else
);
来源:link
【讨论】:
以上是关于android的radiogroup为啥选择两个的主要内容,如果未能解决你的问题,请参考以下文章
Android:为啥 Radio Group 中的 Radio Button 总是为任何选定的项目返回 false?
android 中如何获取radiogroup 中那个radiobutton被选择
Android实现RadioGroup之间的互斥且radioButton可以选择或取消
Android RadioGroup的RadioButton 选择改变字体颜色和背景颜色