notifyDataSetChanged的一个坑
2016-01-07 10:40
627 查看
notifyDataSetChanged是在adapter的数据源发生变化时,在程序中主动通知adapter更新数据源,这里存在一个问题:当数据源的引用指向别的list时,notifyDataSetChanged是无效的,也就是说notifyDataSetChanged只识别最原始的数据源,也就是集合变量第一次指向的那个list对象,下面用代码说明:
public void handleMessage(Message msg) {
switch (msg.what) {
//数据解析成功200
case Config.JSON_EXACT:
List<PhotoAlbumBean> llist= (List<PhotoAlbumBean>) msg.obj;
list.addAll(llist);
adapter.notifyDataSetChanged();
break;
//数据解析失败500
case Config.JSON_ERROR:
Toast.makeText(ClassAlbumActivity.this, Config.JSON_FAIL, Toast.LENGTH_SHORT).show();
break;
可以清楚的看到,handler拿到list对象后不是直接赋给list引用,而是通过list的addAll方法,这样保证list始终是引用最原始的那个list对象。
public void handleMessage(Message msg) {
switch (msg.what) {
//数据解析成功200
case Config.JSON_EXACT:
List<PhotoAlbumBean> llist= (List<PhotoAlbumBean>) msg.obj;
list.addAll(llist);
adapter.notifyDataSetChanged();
break;
//数据解析失败500
case Config.JSON_ERROR:
Toast.makeText(ClassAlbumActivity.this, Config.JSON_FAIL, Toast.LENGTH_SHORT).show();
break;
可以清楚的看到,handler拿到list对象后不是直接赋给list引用,而是通过list的addAll方法,这样保证list始终是引用最原始的那个list对象。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories