为 Recyclerview 更新自定义 Adapter 的 ViewHolder 值

Update ViewHolder values of custom Adapter for Recyclerview

我有一个带有自定义 AdapterRecyclerView,用于在网格(使用 Gridlayout Manager).

这些元素由一个 ImageView 和一个 TextView 组成。我想在收到网络请求的新结果后定期更新这两个视图(比如每 2 分钟一次)。

更新这些视图的最佳方式是什么?如何识别特定的 ViewHolder?如何访问这些元素的 ViewHolder 值?最好在我想更改它们的 Activity 中保留对每个 ViewHolder 的引用吗?或者我应该用新值创建一个新元素并用它替换当前元素吗?什么是最佳实践?

如果您将图像视图和文本视图的值存储在数组列表中,您可以在数据集发生更改时调用适配器上的 notifyDataSetChanged。

例如,如果您说一个 Grid 对象,其属性包括图像 uri(用于设置图像)和字符串(用于在文本视图中设置)和一些数组列表,例如

List<Grid> gridList = new ArrayList<>();

您可以更新您在 Arraylist 中获得的任何新数据,并在完成更新后调用数组列表

adapter.notifyDataSetChanged();

最佳做法是在某些数据更改时更新视图及其数据。您必须始终这样做。方法

adapter.notifyDataSetChanged 

为你做这个。
当您更新一些数据时,您必须告诉系统,因为有一个名为回收的重要操作,当您使用视图持有者时,您可以让系统回收视图,这意味着不更改日期的视图被存储在视图持有者上,因此列表不需要使用

findViewById 

再次。