关于ListView与CheckBox的结合(第二版.精华版)
发布日期:2021-06-30 11:18:17
浏览次数:2
分类:技术文章
本文共 1737 字,大约阅读时间需要 5 分钟。
关于通过ListView将数据绑定到复选框的问题的总结
问题来源: 1 选中第一页的第2,3个复选框,当翻到第二页的时候其相同位置也被选中 解决思路:绝不能依靠复选框的被选中来删除黑名单号码(原因见上面分析),而依靠哪个数据被选中来删除黑名单.那么怎么知道这个数据 是否被选中呢?就是通过 CheckBox的被选状态来提示用户的。所以说CheckBox只是起到一个显示作用!! 解决办法:自定义SimpleAdapter类,重写getView()方法。而且借用了外部的全局的balckNumberIsCheckedMap保存了每个电话号码的状态,初始时均未被选中。 重写getView()方法的目的: (1)实现数据的绑定checkBox.setText(blacknumber);//这里就是绑定的实质。把这个电话号码绑定到了ListView的这个checkbox上 (2)为CheckBox赋予初始状态(初始状态均为未被选中) boolean isChecked=balckNumberIsCheckedMap.get(id); checkBox.setChecked(isChecked); 2 通过实现对于条目点击事件的监听,我们在点击条目的时候可知道是背后的那条数据被点击 即HashMap<String,Object> itemHashMap=(HashMap<String, Object>) lv.getItemAtPosition(position);于是就可以修改此号码在balckNumberIsCheckedMap中的状态 从而用此状态来决定复选框CheckBox的状态,这样的话点击几个条目去实现删除的时候遍历balckNumberIsCheckedMap查看哪些号码被选中,把选中的删除即可。 这样带来了第二个问题:点击条目的时候,其实没有真正地点击到条目,而是点击了复选框CheckBox,因为复选框的优先级很高。 解决办法:在布局文件中使复选框不可以被点击,不可以被触摸,不可以获得焦点!!!于是在点击条目的时候就真的是在点击条目了!!!!!!!! 于是可以这样处理条目点击事件: (1) 在点击的时候切换复选框状态checkBox.toggle();每点击条目都会切换此状态;然后得到复选框现在的状态即boolean itemIsCheck=checkBox.isChecked(); (2) 得到当前被点击电话号码即HashMap<String,Object> itemHashMap=(HashMap<String, Object>) lv.getItemAtPosition(position); (3) 得到号码的ID即int blackNumberId=(Integer) itemHashMap.get("id"); (4) 然后修改此号码在balckNumberIsCheckedMap中的状态即balckNumberIsCheckedMap.put(blackNumberId, itemIsCheck); 这样就实现了形式与内容的统一,复选框的状态发生了变化,而且正确体现了实际情况。 核心代码如下: checkBox.toggle(); boolean itemIsCheck=checkBox.isChecked();//得到checkBox目前的状态 HashMap<String,Object> itemHashMap=(HashMap<String, Object>) lv.getItemAtPosition(position);//得到ListView被点击条目所绑定的HashMap int blackNumberId=(Integer) itemHashMap.get("id"); balckNumberIsCheckedMap.put(blackNumberId, itemIsCheck);当我们执行删除的时候:其实就是去HashMap<Integer, Boolean> balckNumberIsCheckedMap看哪些数据被选中了,若被选中就删除它们。
这个总结源自于小项目——来电小精灵
转载地址:https://it9527.blog.csdn.net/article/details/6175269 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月24日 00时37分47秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于java的网络考试系统的设计与实现
2021-07-03
基于java的魂斗罗的设计
2021-07-03
基于java的网页内容管理
2021-07-03
基于JSP心悦图书城系统设计与实现
2021-07-03
基于Spring+SpringMVC+hibernate实现的体检中心管理系统
2021-07-03
基于SSM的网上购物系统的设计与开发
2021-07-03
基于SSM的网上购物系统的设计与开发
2021-07-03
基于SSM框架的BS微博系统的设计与实现
2021-07-03
基于SSM的兼职论坛系统的设计与实现
2021-07-03
基于java的图书管理系统的设计与实现
2021-07-03
基于java的SSM框架理财管理系统的设计与实现
2021-07-03
基于java的ssm框架就业信息管理系统的设计
2019-04-30
基于java的ssm框架的旅游网站设计与实现
2019-04-30
基于java的SSM框架的流浪猫救助网站的设计与实现
2019-04-30
基于java的SSM框架的教务关系系统的设计与实现
2019-04-30
别再问我什么是A/B测试了!
2019-04-30
如何用同期群分析模型提升留存?(Tableau实战)
2019-04-30
爱了,吹爆这个高颜值的流程图工具!
2019-04-30
一个数据项目
2019-04-30
java的酒店房间管理系统
2019-04-30