android 中如何获取radiogroup 中那个radiobutton被选择
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 中如何获取radiogroup 中那个radiobutton被选择相关的知识,希望对你有一定的参考价值。
XML文件中添加了RadioGroup,然后想在代码中,动态添加RadioButton,该怎样实现? <LinearLayout android:id="@+id/childlayout"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<RadioGroup android:id="@+id/radioGroup1"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical">
</RadioGroup>
</LinearLayout>
复制代码现在,我想用代码动态添加RadioButton,代码是不是应该这样写
RadioButton rb= new RadioButton(this);
RadioGroup radiogroup=(RadioGroup)this.findViewById(R.id.radioGroup1);
radiogroup.addView(rb);
复制代码
但是,我写了好像报错的
<RadioGroup android:id="@+id/rg_sex" android:layout_width="fill_parent"
android:orientation="horizontal" android:layout_height="wrap_content">
<RadioButton android:layout_width="wrap_content"
android:text="@string/person_man" android:id="@id/+rb_person_man"
android:layout_height="wrap_content" android:checked="true" />
<RadioButton android:layout_width="wrap_content"
android:text="@string/person_woman" android:id="@id/+rb_person_woman"
android:layout_height="wrap_content" />
</RadioGroup>
java代码如下:
private RadioGroup rg_sex ;
...
rg_sex = (RadioGroup)findViewById(R.id.rg_sex);
rg_sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
@Override
public void onCheckedChanged(RadioGroup group, int checkedId)
switch (checkedId)
case R.id.rb_person_man:
System.out.println("男");
break;
case R.id.rb_person_woman:
System.out.println("女");
break ;
default:
break;
);
9月 参考技术A 这儿是我写的一小段代码,要想知道radiogroup 中那个radiobutton被选择,需要设置监听:
RadioGroup radiogroup = (RadioGroup) this.findViewById(R.id.radioGroup);
RadioButton rb = new RadioButton(this);
rb.setId(0);
RadioButton rb1 = new RadioButton(this);
rb.setId(1);
RadioButton rb2 = new RadioButton(this);
rb.setId(2);
RadioButton rb3 = new RadioButton(this);
rb.setId(3);
radiogroup.addView(rb);
radiogroup.addView(rb1);
radiogroup.addView(rb2);
radiogroup.addView(rb3);
radiogroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
@Override
public void onCheckedChanged(RadioGroup group, int checkedId)
Toast.makeText(RadiaoGroupTester.this,
"The ID is: " + checkedId, Toast.LENGTH_LONG).show();
); 参考技术B 看文档,找单独属于RadioGroup对象的方法、而不是继承下来的方法,这个问题挺简单的。建议自己弄清楚、学会看文档。
http://zhidao.baidu.com/question/199039524.html 看看这个,我比较懒。。没试过。追问
行,那我再看看API,如果还有问题再请教你,你的QQ多少啊
追答124863950
本回答被提问者采纳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 中如何获取radiogroup 中那个radiobutton被选择的主要内容,如果未能解决你的问题,请参考以下文章
获取 Android 中 RadioGroup 中的 RadioButtons 数组
Android 谁有动态添加多个RadioGroup 并获取所有RadioGroup被选中的值的方法?