1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > android 数据刷新问题 RecyclerView数据不刷新问题

android 数据刷新问题 RecyclerView数据不刷新问题

时间:2019-04-19 03:26:21

相关推荐

android 数据刷新问题 RecyclerView数据不刷新问题

相关问题如下:

问题代码如下:

WorkAchievementAdapter adapter = new WorkAchievementAdapter(item.getWorkResultsPic(), mContext);

RecyclerView rvWorkAchievement = helper.getView(R.id.rv_work_achievement);

rvWorkAchievement.setAdapter(adapter);

adapter.notifyDataSetChanged();

代码看着没什么问题,但是数据就是不刷新,即使调用了adapter.notifyDataSetChanged();也没有作用。

问题出现原因:

RecyclerView跟ListView不一样,当我们想要更新数据的时候,有两种情况:

dataList = createDataList(5); //这是错误的做法,dataList为初始传入的List

dataList.addAll(createDataList(5)); //这是正确的做法

我们想要更新数据的时候,请记住这句话

“whenever adding or removing elements, always make changes to the existing list”

也就是说,请在原数据集上更新你的数据,而不是用一个新的数据集替代,记得最后要 mAdapter.notifyDataSetChanged()一下哟。

结论: 改变数据源的时候,一定要改变adapter真正的数据源:

所以修改之后的代码如下:

WorkAchievementAdapter adapter = new WorkAchievementAdapter(item.getWorkResultsPic(), mContext);

RecyclerView rvWorkAchievement = helper.getView(R.id.rv_work_achievement);

rvWorkAchievement.setAdapter(adapter);

adapter.setNewData(item.getWorkResultsPic());

adapter.notifyDataSetChanged();

在设置adapter之后需要在原地址数据上更新数据。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。