最近在使用BaseRecyclerViewAdapterHelper时,需要在弹出dialog后更新数据,但是发现调用适配器的notifyDataSetChanged(),根本无法起什么作用,于是打印log,发现一个问题Adapter每次加载的都是同一个地址的集合,而自己更新数据时是二个不同地址的集合数据,鉴于此种情况只能使用第三者集合,就这样解决了集合无法更新问题,特此记录下.
1,获取要显示的数据,以及第三者集合
private List<AchiveMentBean.AchievementBean> data=new ArrayList<>();//创建第三者集合
2,使用集合的addAll方法添加获取的数据,并创建adapter
list = bean.achievement;
data.addAll(list);
adapter = new MyAdapter(data);
rv.setAdapter(adapter);
3,获取更新后的数据,并调用adapter.notifyDataSetChanged();刷新界面和数据
data.clear();//清除之前的数据
List<AchiveMentBean.AchievementBean> refreshData = bean.achievement;
data.addAll(refreshData);//添加更新的数据
adapter.notifyDataSetChanged(); //更新界面