Android Radiogroup 布局问题

jsplove 2011-10-05 09:48:37
现有5个单选按钮,水平放置的话一排有点拥挤,我打算分两排显示,第一排三个,第二排两个,于是我在RadioGroup中加入了两个先行布局,但是加好后发现这几个单选按钮不是一组了,每个都可以被选中,请问有什么解决办法吗,或者能采用什么方法让单选按钮自动换行吗?
...全文
1579 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouaijia8 2013-11-12
  • 打赏
  • 举报
回复
那请问你是怎么解决的呢?急需!
Kylin_Mountain 2013-09-13
  • 打赏
  • 举报
回复
呵呵,早就解决了。。。你们这算是挖坟么?
什么昵称 2013-09-09
  • 打赏
  • 举报
回复
引用 9 楼 caryee89 的回复:
根本不可行, 你调用clearCheck 就会导致再次导致调用OnCheckedChangeListener 然后再次调用,循环调用。 必须出错。
玩过单片机中断的应该都知道吧,进去先把OnCheckedChangeListener 设置为NULL, 等操作完了 再设置回来就好了
iamonlydownload 2013-09-07
  • 打赏
  • 举报
回复
引用 9 楼 caryee89 的回复:
根本不可行, 你调用clearCheck 就会导致再次导致调用OnCheckedChangeListener 然后再次调用,循环调用。 必须出错。
[quote=引用 8 楼 generalx 的回复:] 的确会出现死循环,但是RadioGroup里的RadioButton的选中值是正常的,要避免的话还是在要加一个标识 private Boolean changeGroup = false; public void onCheckedChanged(RadioGroup group, int checkedId){ if (group != null && checkedId > -1 && changeGroup == false){ if(group == frequencyGroup1){ changeGroup = true; frequencyGroup2.clearCheck(); frequencyGroup3.clearCheck(); changeGroup = false; }else if(group == frequencyGroup2){ changeGroup = true; frequencyGroup1.clearCheck(); frequencyGroup3.clearCheck(); changeGroup = false; }else if(group == frequencyGroup3){ changeGroup = true; frequencyGroup1.clearCheck(); frequencyGroup2.clearCheck(); changeGroup = false; } } }
Kylin_Mountain 2012-08-11
  • 打赏
  • 举报
回复
根本不可行,
你调用clearCheck
就会导致再次导致调用OnCheckedChangeListener
然后再次调用,循环调用。
必须出错。
generalx 2012-06-09
  • 打赏
  • 举报
回复
不好意思~没有仔细看完,这个才可以解决

private OnCheckedChangeListener mOnCheckedChangeListener = new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (group != null) {
if (group == rg_skin_content1) {
if(checkedId==R.id.rb_appearance_1||checkedId==R.id.rb_appearance_2||checkedId==R.id.rb_appearance_3||checkedId==R.id.rb_appearance_4){

rg_skin_content2.clearCheck();
group.check(checkedId);
}
} else if (group == rg_skin_content2) {
if(checkedId==R.id.rb_appearance_5||checkedId==R.id.rb_appearance_6||checkedId==R.id.rb_appearance_7||checkedId==R.id.rb_appearance_8){

rg_skin_content1.clearCheck();
group.check(checkedId);
}
}

}
}
};
generalx 2012-06-09
  • 打赏
  • 举报
回复
关于楼上无法单选的问题,其实里面也已经有解决方案了。

private OnCheckedChangeListener mOnCheckedChangeListener = new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(group==rg_skin_content1){
rg_skin_content2.clearCheck();
}else if(group==rg_skin_content2){
rg_skin_content1.clearCheck();
}

}
};
zwtlongyang 2012-03-28
  • 打赏
  • 举报
回复
按一楼的方法是能解决换行问题,但是没法单选了,变成可以多选了
jsplove 2011-10-12
  • 打赏
  • 举报
回复
按照一楼的方法解决的
[Quote=引用 3 楼 sky16h 的回复:]

怎么解决的?
[/Quote]
sky16h 2011-10-08
  • 打赏
  • 举报
回复
怎么解决的?
panghuhu250 2011-10-05
  • 打赏
  • 举报
回复
"RadioButtons have to be direct children of RadioGroup",见这儿这儿的讨论。

用多个RadioGroup,然后自己把它们连起来,像这样
jsplove 2011-10-05
  • 打赏
  • 举报
回复
多谢,问题解决了,真不明白google设计的时候为什么运行在group中加其他布局,真难用
[Quote=引用 1 楼 panghuhu250 的回复:]
"RadioButtons have to be direct children of RadioGroup",见这儿和这儿的讨论。

用多个RadioGroup,然后自己把它们连起来,像这样。
[/Quote]

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧