中易网

ListView中添加了CheckBox出现滚动条时,勾选的选项会没掉?

答案:3  悬赏:60  
解决时间 2021-03-15 10:24
ListView中添加了CheckBox,出现滚动条的时候,勾选前面的几个checkbox,拖动到下面后,返回时,勾选的那些都变成没勾选的了?demo在 上,大家帮忙看下。
最佳答案
搞定。结贴。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]
全部回答
这个不是checkbox问题,是listview item复用的问题。如果你listview中文本支持在线编辑的话,如果你不保存起来也会丢失。
android/iphone中listview/tableview中item有个复用的说法,也就是它不会因为你有多少个item就申请多少个item的内存,当滚动以后,看不见的item的内存就被复用,被下面正在显示的item复用了;当再次滚动回去的时候,重新调用getView,这时候你的checkbox状态已经不存在了。这个东西可以记录到一个数组里面,每次做check动作的时候(onItemClick或者onChecked)把item的index放到数组里面,做uncheck的时候把item从数组里面移除;另外,要在定义adapter,实现getView,在这个函数里面每次都检查数组,如果当前item的状态为checked,就调用checkbox的setChecked
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
love rather than the waste me to love什么
河北首农现代农业科技有限公司地址在哪,我要
桃李杯椅子舞的叫什么名字 看见了一个舞蹈,
仓储分流,无锡仓储物流哪家好
黑执事里格雷尔杀了红夫人,那为什么夏尔对格
锡宜高速公路/X211(路口)这个地址在什么地方
耐尔(韩世商业步行街)我想知道这个在什么地方
“味连”名称来源,是否有历史沿革?
求大神答案,10,11题。。。。。
高校爱心超市的名称,感谢!!!
金后盾集团的评价如何
在淘宝上怎么才能让自己的服装排到前几页啊
懒惰间隔的拼音怎么写
梦到和喜欢的人相拥躺在床上有什么寓意
莱特纸张油墨市场西四门在哪里啊,我有事要去
推荐资讯
重庆电子工程职业学院2009年单招录取线是多少
世间万物皆可求,唯有什么
头部受到撞击后太阳穴疼是怎么回事事
南京同仁堂足道包4岁小孩能用吗?
请问,在湖南长沙,生育保险是交满多久才可以
在dezan shira associates工作,发展前景怎么
清朝的钱币。背面有一个汉字《福》,还有一枚
江苏联通充值Q币的号码 打过去为什么是空号?
一段字节集如何读取
金沙工业区地址在哪,我要去那里办事
嘉汇大厦停车场(出入口)(光明大道1945号附近
三和村西北风味羊肉汤地址在哪,我要去那里办
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?