最近做项目需要动态创建单选多选框。
大体思路就是:
1.动态创建一个RadioGroup.
2.动态创建RadioButton,并且添加到RadioGroup中去。
如果是自己继承RadioButton,和RadioGroup去实现其他各种各样的话,一不小心就会遇到各种各样的病。
(啊啊啊啊,RadioGroup我要给你生好多好多小猴子)。
最常见就是RadioButton的状态紊乱:
(1)某个RadioButton选不上,通常是第一个。
(2)竟然好几个RadioButton都可以选中。
解决方法是:
1. 动态添加RadioButton的时候必须要给每个RadioButton都set一个唯一的ID
2.如果一定要使用api:RadioButton setChecked
尽量在RadioGroup添加RadioButton完了过后再设置默认选定项。就是尽量在RadioGroup都添加完之后再调用
setChecked()这个接口。
3.如果以上都解决了,还是出现某个Button选不上。好吧,祝贺你。记得去找个适合的地方,给RadioGroup调用clearCheck()这个接口。
(我碰到的是第一个,代码中把这RadioGroup和RadioButton塞到了ExpandableListView,我猜原因是因为对象复用引起的,最后不得不挑了一个地方
把clearCheck()这个函数塞进去,重置状态才解决了问题。)
时间: 2024-12-25 22:49:27