首页 > 其他 > 详细

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

时间:2015-05-13 00:57:43      阅读:430      评论:0      收藏:0      [点我收藏+]

情景分析:

在开发过程中,我们经常会使用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()刷新数据不更新原因分析

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!