android RadioGroup中的RadioButton手动设置相关问题
来源:互联网 发布:淘宝店主寄语文艺 编辑:程序博客网 时间:2024/06/05 19:13
问题:全设置为false后再设置其中一个为true无效:
_butRange1.setChecked(false); _butRange2.setChecked(false); _butRange3.setChecked(false); if(_selectedId>=0&&_selectedId<=2) { Log.v("RadioGroupTouchListener","onSelectedButton setChecked:"+_selectedId); radios[_selectedId].setChecked(true); }
原因:RadioGroup会对每个RadioButton添加监听,看源码:
private class CheckedStateTracker implements CompoundButton.OnCheckedChangeListener { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // prevents from infinite recursion if (mProtectFromCheckedChange) { return; } mProtectFromCheckedChange = true; if (mCheckedId != -1) { setCheckedStateForView(mCheckedId, false); } mProtectFromCheckedChange = false; int id = buttonView.getId(); setCheckedId(id); } }关键的变量
mCheckedId表示上次选中的单选框,也就是当点击另外一个单选框时,首先RadioButton会设置为true,然后RadioGroup会把之前选中的设为false。
public void check(@IdRes int id) { // don't even bother if (id != -1 && (id == mCheckedId)) { return; } if (mCheckedId != -1) { setCheckedStateForView(mCheckedId, false); } if (id != -1) { setCheckedStateForView(id, true); } setCheckedId(id); }
所以当我们手动对已勾选的radiobutton设为false,则会造成id=checkedId,所以再将目标设为true 则不会执行。
改正:
方法1:
直接对需要的radiobutton设为true,不需要对其他或本身先设为false
方法2:
使用radiogroup.checked(int id)
总结:
如果要自定义开关状态,不要用radiogroup装载radiobutton,直接用linearlayout
0 0
- android RadioGroup中的RadioButton手动设置相关问题
- Android自定义RadioGroup中的RadioButton
- Android RadioButton RadioGroup 中的坑
- 对RadioGroup中的RadioButton设置颜色选择器
- Android RadioGroup中设置默认选中RadioButton 后,选中两个的问题 解决方法
- Android RadioGroup中设置默认选中RadioButton 后,选中两个的问题 解决方法
- Android ListView中的项中包含RadioGroup时,RadioButton混乱选中的问题的解决方法
- Android RadioGroup中的RadioButton无法选中问题的一种处理方式
- Android RadioGroup 之 RadioBUtton
- Android-RadioButton&RadioGroup
- Android控件RadioButton&RadioGroup
- Android RadioGroup和RadioButton
- 解决某些手机RadioGroup中的RadioButton不居中问题
- 解决某些手机RadioGroup中的RadioButton不居中问题
- 解决某些手机RadioGroup中的RadioButton不居中问题
- 关于RadioGroup中的radiobutton选中状态保存的问题!!
- 解决某些手机RadioGroup中的RadioButton不居中问题
- Android实现RadioGroup中的RadioButton再次点击取消选中
- u3d游戏中显示模型的网格
- skill tree
- 修复Android虚拟导航栏(Navigation Bar)遮挡app部分界面的错误
- 客户端缓存
- Flotherm 网格划分经验
- android RadioGroup中的RadioButton手动设置相关问题
- Apache Replication主从复制同步机制实践
- RecyclerView Bug:IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter的解决方案
- 要期末考试啦!记住这些
- 胡杨林
- 《python》学习笔记(Day1++),try\except\finally机制
- Android 讲解:存储(2)
- wordnet
- json数据BOM头去除