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 选择改变字体颜色和背景颜色

android 中如何获取radiogroup 中那个radiobutton被选择

可以在 RadioGroup android 中选择多个 RadioButton