selectAll, unSelectAll两个操作的实现
private void updateBatchSelectionStatus() {
ContactListAdapter.ViewHolder viewHolder = null;
TxrjContact contact = null;
int size = mContacts.size();
boolean select = (getSelectCount() == mContacts.size() ? true : false);
for(int i=0;i<size;i++){
viewHolder = (ContactListAdapter.ViewHolder)mListView.getChildAt(i).getTag();
contact = mContacts.get(i);
contact.setSelected(select);
viewHolder.select
.setImageBitmap(select ? mListAdapter.checkBox
: mListAdapter.unCheckBox);
}
}
红色语句出现空指针异常,原因分析:
mContacts可能有100个TxrjContact,但是mListView不可能一下子有100个child,每次只显示可视区域中的几个view。
将以上方法改写成
private void updateBatchSelectionStatus() {
int size = mContacts.size();
boolean select = (getSelectCount() != mContacts.size() ? true : false);
for(int i=0;i<size;i++){
mContacts.get(i).setSelected(select);
mListAdapter.notifyDataSetChanged();
}
}
再执行就符合预期效果
点击事件处理程序
} else if(v == mSelectAll) {
updateBatchSelectionStatus();
updateSelectButtonText();
}
selectAll, unSelectAll两个操作的实现的更多相关文章
- dpkg: error: -i (--install) 和 -i (--install) 两个操作之间有矛盾
1 错误描述 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ sudo dpkg -i -i WineQQ2013-20131120-Longene.deb [ ...
- 【spring data jpa】使用spring data jpa时,关于service层一个方法中进行【删除】和【插入】两种操作在同一个事务内处理
场景: 现在有这么一个情况,就是在service中提供的一个方法是先将符合条件的数据全部删除,然后再将新的条件全部插入数据库中 这个场景需要保证service中执行两步 1.删除 2.插入 这两步自然 ...
- MySQL Index--NOT IN和不等于两类操作无法走索引?
经常被问,NOT IN和<>操作就无法走索引? 真想只有一个:具体问题具体分析,没有前提的问题都是耍流氓. 准备测试数据: ## 删除测试表 DROP TABLE IF EXISTS tb ...
- sk_buff整理笔记(两、操作函数)
承接上一:sk_buff 整理笔记(一.数据结构)这一篇要讲的是内核为sk_buff结构提供的一些操作函数. 第一.首先要讲的是sk_buff中的四大指针: 四大指针各自是:head.data.tai ...
- [转载]redis持久化的两种操作RDB和AOF
Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...
- std::vector 两种操作的比较
swap assign 这里只想说明这三种操作的用处和效率.swap和assign都可以用在将一个vector的内容全部复制给另外一个vector,区别是swap会改变源vector,而assign会 ...
- Hive的两种操作模式
Hive的客户端操作 Hive的客户端操作 通过JDBC操作Hive 通过Thrift操作Hive 通过JDBC操作Hive 首先 Hive 启动远程服务 hive --service hiveser ...
- 栈(Stack)和队列(Queue)是两种操作受限的线性表。
(线性表:线性表是一种线性结构,它是一个含有n≥0个结点的有限序列,同一个线性表中的数据元素数据类型相同并且满足"一对一"的逻辑关系. "一对一"的逻辑关系指的 ...
- ConcurrentDictionary<T,V> 的这两个操作不是原子性的
好久不见,马甲哥封闭居家半个月,记录之前遇到的一件小事. ConcurrentDictionary<TKey,TValue>绝大部分api都是线程安全且原子性的, 唯二的例外是接收工厂委托 ...
随机推荐
- AndroidManifest.xml文件解析(转帖)
原帖地址:http://www.cnblogs.com/pilang/archive/2011/04/20/2022932.html 一.关于AndroidManifest.xml And ...
- 给Spring的placeholder设置默认值
问题:使用Spring时,可以方便地通过placeholder的形式${key}将key对应的properities定义value,注入到Bean中.但是如果在properities文件中,没有对ke ...
- json schema校验
工作中使用到了json schema格式校验的问题,在网上查了些资料,结合自己的理解记录一下. json schema可以对json结果字符串做出一些约束,例如: 1. 值类型是:array, obj ...
- [leetcode]Triangle @ Python
原题地址:https://oj.leetcode.com/problems/triangle/ 题意: Given a triangle, find the minimum path sum from ...
- Android基于RecyclerView实现高亮搜索列表
这篇应该是RecycleView的第四篇了,RecycleView真是新生代的宠儿能做这么多的事情. 转载请注明作者AndroidMsky及原文链接 http://blog.csdn.net/Andr ...
- 用条件随机场CRF进行字标注中文分词(Python实现)
http://www.tuicool.com/articles/zq2yyi http://blog.csdn.net/u010189459/article/details/38546115 主题 ...
- Docker实战之创建一个tomcat容器
一.Docker与虚拟机的区别 二.Docker学习步骤 2.1:安装宿主操作系统 在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic ...
- Cognos11中报XQE-JDB-0004查找驱动程序类错误
1:问题描述,在cognos11中创建了一个数据源连接TestData, 类型为Microsoft SQL Server (OLE DB) 操作如下: 同时配置了jdbc的连接方式,如下图所示 测试数 ...
- c++ 中const的使用
在c++中.const是这么一个东西:假设你希望可以有一些东西是别人不能改动的,这个时候const就起作用了. const 在使用情况例如以下: a.修饰常量 const int a; int con ...
- mysql zerofill 的使用
转自:http://www.jquerycn.cn/blog/mysql/ 那这个int[M]中M是什么意义喃,在定义数值型数据类型的时候,可以在关键字括号内指定整数值(如:int(M),M的最大值为 ...