RcyclerView的notifyDataSetChanged方法

经测试:如果在原有的集合数据上使用add方式添加元素后,调用notify方法可以刷新页面

但是如果是用新的集合赋值给原集合,就不起作用了。可能是因为赋值后adapter中的集合并没有同步改变,他里面持有的还是原来的集合。所以不是网上说的线程问题。

解决方式:

1、赋值后重新setAdapter()。

2、清空元集合使用addall()方法添加新集合,这样adapter中的数据就是同步的。如下:

@Override
    public void refreshAdapter(ArrayList<AuthFriendBean> datas) {
        beans.clear();
        beans.addAll(datas);
        adapter.notifyDataSetChanged();
    }

其中datas为新请求的数据集合,beans是原来的数据集合。

原文地址:https://www.cnblogs.com/epmouse/p/6279644.html