![](/img/trans.png)
[英]update list to recyclerview adapter with DiffUtil removing the old one?
[英]DiffUtil - How to keep the old List before updating it
我正在尝试使用DiffUtil
更新RecyclerView
。 我有一个类DataProvider
,它是一个单例类,其中包含包含对象的列表。
每次我需要更新RecyclerView
我都会修改DataProvider
的 List 。 现在,当我尝试使用将两个列表作为参数的DiffUtil
,我真的不再拥有旧List
了,因为我更新了它。
在更新之前保留旧List
的最佳方法是什么,以便我可以比较它们并在RecyclerView
进行所需的更新而无需调用notifyDataSetChanged()
?
请参考这个答案: https : //stackoverflow.com/a/47522246/8298909
我知道您在问一个不同的问题,但我链接的答案中的两个代码片段几乎正是您要寻找的: DiffUtil.Callback
的简单实现以及如何使用它的示例,即使您在直接修改支持适配器的数据源。
关键是在执行更改之前使用new ArrayList<>([your data here])
创建修改前列表的(临时)副本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.