码迷,mamicode.com
首页 > 其他好文 > 详细

ListView中notifyDataSetChanged()刷新数据不更新原因分析

时间:2015-05-13 01:00:45      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:listview刷新

情景分析:

在开发过程中,我们经常会使用notifyDataSetChanged()实时的让ListView进行刷新操作,但是有的时候却会发现ListView不再刷新了,有的时候却又可以自动刷新。

原因分析:

技术分享
如上图所示,传递给Adapter的List引用一开始为引用a,但是,当我们在程序中执行刷新更换数据的时候,如果一不小心将List的引用换成了引用b的话,就会导致上述情景的发生。那是因为Adapter刷新的时候,还是用得引用a的数据,而不是引用b;

解决思路:

思路1:

在Adapter中为其List动态的设置一个set方法,这样当List的引用改变时,实时的调用set方法也让Adapter中的List对应的将引用同步更改掉,这样就可以实现调用notifyDataSetChanged()刷新效果了;

思路2:

从源头做起,避免改变List的引用,将新生成的引用b的数据,调用List的addAll(…)方法,全部更新到引用a里面,这样子就可以让引用a的数据实时刷新,之后再调用notifyDataSetChanged(),也就可以实现我们的刷新效果了。

ListView中notifyDataSetChanged()刷新数据不更新原因分析

标签:listview刷新

原文地址:http://blog.csdn.net/u011771755/article/details/45676983

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!