ListView中添加了CheckBox出现滚动条时,勾选的选项会没掉?
答案:3 悬赏:60
解决时间 2021-03-15 10:24
- 提问者网友:相思故
- 2021-03-14 12:56
ListView中添加了CheckBox,出现滚动条的时候,勾选前面的几个checkbox,拖动到下面后,返回时,勾选的那些都变成没勾选的了?demo在 上,大家帮忙看下。
最佳答案
- 二级知识专家网友:萌萌哒小可爱
- 2021-03-14 13:33
搞定。结贴。public View getView(int position, View convertView, ViewGroup parent) { View v = super.getView(position, convertView, parent); CheckBox checkbox = (CheckBox) v.findViewById(R.id.contacterCB); if (checkedArray != null) for (int i = 0; i < checkedArray.length; i++) { if (position == checkedArray[i]) checkbox.setChecked(true); } return v; }[/code]
全部回答
- 1楼网友:恕我颓废
- 2021-03-14 16:16
这个不是checkbox问题,是listview item复用的问题。如果你listview中文本支持在线编辑的话,如果你不保存起来也会丢失。
- 2楼网友:何以畏孤独
- 2021-03-14 14:58
android/iphone中listview/tableview中item有个复用的说法,也就是它不会因为你有多少个item就申请多少个item的内存,当滚动以后,看不见的item的内存就被复用,被下面正在显示的item复用了;当再次滚动回去的时候,重新调用getView,这时候你的checkbox状态已经不存在了。这个东西可以记录到一个数组里面,每次做check动作的时候(onItemClick或者onChecked)把item的index放到数组里面,做uncheck的时候把item从数组里面移除;另外,要在定义adapter,实现getView,在这个函数里面每次都检查数组,如果当前item的状态为checked,就调用checkbox的setChecked
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |