ListView传递复杂对象用到的知识
来源:互联网 发布:上海华云数据 知乎 编辑:程序博客网 时间:2024/06/06 07:48
//留坑,周末在填
ListView的防错乱
- ListView的item中包含CheckBox,默认情况下滑动会错乱
- 错乱的原因是ItemView的复用,我们可以想到有两种解决方案
- 将状态存储到Model中(比较推荐),Android中的数据加载符合MVC的设计模式,View的显示是根据Model来进行的,我们维护数据就OK
- 将选中的项实用一个Map记录一下
接口回调
- 主要用于数据的传递
- 实现过程大体分为三步
- 定义接口,定义接口中的方法
- 在数据产生的地方持有接口的引用,当数据产生的时候,调用接口中的方法
- 在需要处理数据的地方实现接口,并将接口的引用传递数据产生的地方
数据序列化
- 使用Intent等传递复杂对象的时候,需要将对象序列化,Android中可以使用两种方案实现序列化
- 实现Serializable接口,Java中的方式,使用文件的形式存储,效率相对低,数据持久性较好
- 实现Parcelable接口,Android中特有的方式,将数据缓存到Ram中,效率高,稳定性相对较差
ThreadPoolExecutor
- 线程池,专门用来处理高并发的线程,可以有效节约和复用资源
- 咱们指定核心线程数是CPU的核心数 + 1,最大线程数 CPU的核心数 * 2 +1
ListView多布局
- ListView除了简单的加载列表型的单一布局外,还可以同时加载多种布局
- 只需在Adapter中实现getItemViewType和getViewTypeCount
- 在getView的时候根据不同的type进行不同的布局导入,不同的数据加载
PullToRefresh
- 下拉刷新,上拉加载
- PullToRefresh是一个非常经典的刷新库,为多种View提供了下拉刷新与上拉加载:PullToRefreshListView,PullToRefreshGridView,PullToRefreshScrollView...
- 使用起来非常非常简洁 在布局中进行声明,在Java中进行初始化
- 为刷新View设置刷新监听,设置刷新,设置刷新样式,刷新Layout
- 在刷新回调中处理数据,处理完成通知刷新View刷新结束
封装BaseAdapter
- 我们经常用到的BaseAdapter包含中包含了大量的重复代码,我们应该设计一个封装,将通用代码提炼出来
- 我们的BaseAdapter中的数据源通常是List,Model对于每一个Adapter基本都是不一样的,我们这里引用泛型来解决这个问题
- 通过使用泛型我们可以解决除ViewHolder的所有问题,我们通过在ViewHolder中添加Map对已经实例化过的View进行缓存,来制作通用的ViewHolder
- ViewHolder中我们还可以对外提供获取itemView中子View的方法,还可以直接对子View进行操作的方法
- getView中复用机制是完全一样的,不一样的地方就是数据加载,我们将加载数据做成一个抽象方法,让子类去实现
0 0
- ListView传递复杂对象用到的知识
- 六、传递、返回复杂类型的对象
- AIDL传递复杂对象的简单例子
- Axis2传递、返回复杂类型的对象
- Intent其间传递复杂的对象
- Intent其间传递复杂的对象
- Intent其间传递复杂的对象
- 传递、返回复杂类型的对象
- Intent 传递复杂对象
- ksoap2 传递复杂对象 复杂数据类型
- javascript中值传递,地址传递,引用传递的问题(使用js创建list对象时会用到)
- 用Axis2 传递复杂对象
- 【Struts2】(4)复杂对象传递
- web service 传递复杂对象
- 详解如何动态调用WebService传递复杂对象的实现
- 六、axis1传递、返回复杂类型的对象
- WebService体系之——复杂对象的传递
- 传递、返回复杂类型的对象(axis服务端/axis客户端)
- IDEA中Git实战
- 双目立体视觉系统
- 右滑手势使用不当会造成的严重bug
- std::map里面的erase(iterator)调用注意细节
- 五单元笔记
- ListView传递复杂对象用到的知识
- [2]ruby&ruby on rails入门笔记---Ruby中的异常
- 【Machine learning】-机器学习概念篇
- 【数据挖掘】再谈page rank
- gridview显示上方图片下方文字
- php进阶篇
- meta viewport的使用
- ext4 学习笔记(四) [Ext.windowGroup](白鹤翔第一季)
- apache二级域名的绑定