adapter.notifydatasetchanged()没有效果

项目中有个列表的处理,通过一个参数判断是下拉刷新数据还是加载更多数据,结果下拉刷新就是显示不出来界面,数据是有,就开始searching~,搜出很多相关问题,大意如下:

1 当数据源发生变化的时候,我们会调用adaper的notifyDataSetChanged()方法

2 当直接将从数据库或者其他方式获取的数据源集合或者数组直接赋值给当前数据源时,相当于当前数据源的对象发生了变化,当前对象已经不是adapter中的对象了,所以adaper调用notifyDataSetChanged()方法不会进行刷新数据和界面的操作。 

结果发现真的出问题在这行代码

mList = model.getData(); adapter.notifyDataSetChanged();

mList竟然重新赋值了,也就是上面解释的数据源对象发生了变化,改成下面的方式立即解决问题

if(mList != null){
    mList.clear();
    mList.addAll(model.getData());
    adapter.notifyDataSetChanged();
 }

 

posted @ 2016-06-12 16:08  夏落若的博客  阅读(1323)  评论(0编辑  收藏  举报