ListView中notifyDataSetChanged()无法刷新数据的错误实例
来源:互联网 发布:日本你是谁实验 知乎 编辑:程序博客网 时间:2024/05/29 16:39
在使用ListView需要动态刷新数据的时候,经常会用到notifyDataSetChanged()函数。
以下为两个使用的错误实例:
1、
无法刷新:
private List<RecentItem> recentItems; ...... recentItems = getData() mAdapter.notifyDataSetChanged();
正常刷新:
private List<RecentItem> recentItems; ...... recentItems.clear(); recentItems.addAll(getData); mAdapter.notifyDataSetChanged();原因:
mAdapter通过构造函数获取List a的内容,内部保存为List b;此时,a与b包含相同的引用,他们指向相同的对象。
但是在语句recentItems = getData()之后,List a会指向一个新的对象。而mAdapter保存的List b仍然指向原来的对象,该对象的数据也并没有发生改变,所以Listview并不会更新。
2、
我在页面A中绑定了数据库的数据,在页面B中修改了数据库中的数据,希望在返回页面A时,ListView刷新显示。无法刷新:
protected void onResume() { mAdapter.notifyDataSetChanged(); super.onResume(); }
正常刷新:
protected void onResume() { recentItems.clear(); recentItems.addAll(recentDB.getRecentList()); mAdapter.notifyDataSetChanged(); super.onResume(); }
原因:
mAdapter内部的List指向的是内存中的对象,而不是数据库。所以改变数据库中的数据,并不会影响该对象。
void
notifyDataSetChanged()
Notifies the attached observers that the underlying data has been changed and any View reflecting the data set should refresh itself.
0 0
- ListView中notifyDataSetChanged()无法刷新数据的错误实例
- ListView notifyDataSetChanged()不刷新数据
- 关于ListView中notifyDataSetChanged()刷新数据不更新原因
- 关于ListView中notifyDataSetChanged()刷新数据不更新原因
- 关于ListView中notifyDataSetChanged()刷新数据不更新原因
- 关于ListView中notifyDataSetChanged()刷新数据不更新原因
- 关于ListView中notifyDataSetChanged()刷新数据不更新原因
- 关于ListView中notifyDataSetChanged()刷新数据不更新原因
- ListView中notifyDataSetChanged()刷新数据不更新原因分析
- 关于ListView中notifyDataSetChanged()刷新数据不更新原因
- Android中ListView数据使用sAdapter.notifyDataSetChanged();方法不刷新的问题
- Android中ListView数据使用sAdapter.notifyDataSetChanged();方法不刷新的问题
- Android中ListView数据使用sAdapter.notifyDataSetChanged();方法不刷新的问题
- 如何动态刷新ListView的显示---notifyDataSetChanged
- listview notifydatasetchanged 不刷新的一种解释
- android listview用adapter.notifyDataSetChanged()无法刷新每项的图标
- notifyDataSetChanged 动态刷新listview
- listview notifyDataSetChanged()刷新显示
- UESTC 483 Data Structure Problem
- UITextField的使用
- 【Leetcode】Unique Binary Search Trees
- UVa-12069-Robots inside the Labyrinth (离散化+bfs)
- JAVA学习笔记--多线程(二)线程常用方法
- ListView中notifyDataSetChanged()无法刷新数据的错误实例
- java 读取json文件
- 经典重拾-第一部分 第三章-数组和字符串
- MY_GEEK_MYMENU--左右切换菜单
- Android View 绘制流程(Draw) 完全解析
- 畅通工程 最短路数
- Android系统框架介绍
- ZOJ_3664_Split the Rectangle_WA
- Django 开发-视图开发