码迷,mamicode.com
首页 > 其他好文 > 详细

PullToRefreshListView 内嵌checkbox 数据丢失问题

时间:2016-06-28 09:26:34      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

在PullToRefreshListView 内部内嵌了Checkbox如下图所示:

原本设计思路是:对CheckBox 进行 setOnCheckedChangeListener 监听

当CheckBox 的状态变化的时候能即时将更新积分,并将 该item的checkbox 状态存到 ListView 中。

如下为checkbox  的程序片段

技术分享

但在实际运行的时候却发现了问题

 

但列表中项目较多,往下滑动列表的时候,会发现前面选择的项会自动清除

如下图:

前面勾选的商品已清除了(积分还在)

解决方法:

经尝试,发现大概原因如下:

因为每个item对应一个convertview,当该商品当前对应的convertview滑出可视页面时,convertview被重用,且其内部的数据进行了重置。

那么假如初始化的CheckBox的状态为false,那么便也会触发setOnCheckedChangeListener 动作,从而对该item的checkbox数据进行了修改,并保存到listview中

所以,问题的根源应该是item滑出页面的时候会触发setOnCheckedChangeListener 动作。

解决方法:对CheckBox的状态捕获不用setOnCheckedChangeListener 方法,而改用setOnClickListener方法

经测试,解决了问题

PullToRefreshListView 内嵌checkbox 数据丢失问题

标签:

原文地址:http://www.cnblogs.com/zhujiabin/p/5622210.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!