gpt4 book ai didi

java - DiffUtil - 如何在更新之前保留旧列表

转载 作者:行者123 更新时间:2023-12-02 02:25:01 33 4
gpt4 key购买 nike

我正在尝试使用DiffUtil来更新RecyclerView。我有一个类 DataProvider ,它是一个单例类,它保存包含对象的列表。

每次我需要更新RecyclerView时,我都会修改DataProvider中的列表。现在,当我尝试使用将两个列表作为参数的 DiffUtil 时,我实际上不再拥有旧的 List 了,因为我更新了它。

在更新之前保留旧的 List 的最佳方法是什么,以便我可以比较它们并在 RecyclerView 上执行所需的更新,而无需调用 notifyDataSetChanged()?

最佳答案

请引用这个答案:https://stackoverflow.com/a/47522246/8298909

我知道您在问一个不同的问题,但我链接的答案中的两个代码 fragment 几乎正是您正在寻找的: DiffUtil.Callback 的简单实现以及如何使用它的示例,即使您直接修改支持适配器的数据源。

关键是使用 new ArrayList<>([your data here]) 创建修改前列表的(临时)副本在执行您的更改之前。

关于java - DiffUtil - 如何在更新之前保留旧列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47915697/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com