ListView的动态刷新问题——用notifyDataSetChanged没作用
来源:互联网 发布:农村淘宝报名 编辑:程序博客网 时间:2024/06/05 18:02
原文:http://blog.csdn.net/wuzhipeng1991/article/details/38820647?utm_source=tuicool
也许很多开发的朋友,尤其是Android初学者,在动态刷新ListView时,使用notifyDataSetChanged并没有起到作用。有时会被困扰得很痛苦。
其实,在使用notifyDataSetChanged过程中,还是有细节需要注意的。举个例子:
我的ListView使用的数据源是来自ArrayList。通常我们的做法是创建一个已经有我们想要提供给ListView的数据的ArrayList,例如:
- ArrayList<Integer> list = new ArrayList<Interger>;
- list.add(1);
- ArrayList<Integer> newlist = new ArrayList<Interger>;
- list.add(2);
这个时候,newlist指向的是一个和list指向不同的堆内存,这个时候,我们直接用list = newlist来把newlist的数据交给list,在这里,实际上只是把list的指向改变了,让它也指向newlist指向的那个内存。那么这个时候我们再调用notifyDataSetChanged这个方法来通知listview更新数据就起不了任何作用了,原因很简单,就是list的指向已经改变,而调用notifyDataSetChanged会去检查原来list指向的数据是否变化,但是这时的list已经不是原来的list了,所以它无法判断,只能不作出响应了。那么,这个问题的解决方法是直接在原来的list上面更改数据,可以使用下面的代码来操作:
- list.clear();
- list.addAll(newlist);
- adapter.notifyDataSetChanged();
总结:在这里的重点就是要注意在开始时传给ListView的list指向不能被改变,需要从始至终指向同一个内存,这样调用notifyDataSetChanged后就能够检测到list的数据变化,从而触发ListView的重新绘制了!
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- android - ListView的动态刷新问题——用notifyDataSetChanged没作用
- 解决用notifyDataSetChanged动态刷新ListView无效的问题
- Android控件——ListView使用notifyDataSetChanged没作用
- 关于notifyDataSetChanged不能动态刷新ListView的问题
- jquery学习之基础核心
- sqlldr导入数据---笔记
- poj 1062 昂贵的聘礼 [dijkstra]
- android设置背景色为透明
- 框架和平台
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- onCreate中的savedInstanceState有何具体作用
- Inno Setup 安装脚本的初级应用
- 把ppt格式的文档转换为pdf格式
- PCLint 与source in sight
- 修改JAVA_HOME无效,java版本保持不变的问题解决
- Python写自动化之构造Multipartform-data发请求
- Keil总是出现“File has been changed outside the editor, reload?”提示
- struts2中action执行流程和源码分析