为 Recyclerview 更新自定义 Adapter 的 ViewHolder 值
Update ViewHolder values of custom Adapter for Recyclerview
我有一个带有自定义 Adapter
的 RecyclerView
,用于在网格(使用 Gridlayout Manager
).
这些元素由一个 ImageView
和一个 TextView
组成。我想在收到网络请求的新结果后定期更新这两个视图(比如每 2 分钟一次)。
更新这些视图的最佳方式是什么?如何识别特定的 ViewHolder
?如何访问这些元素的 ViewHolder
值?最好在我想更改它们的 Activity
中保留对每个 ViewHolder
的引用吗?或者我应该用新值创建一个新元素并用它替换当前元素吗?什么是最佳实践?
如果您将图像视图和文本视图的值存储在数组列表中,您可以在数据集发生更改时调用适配器上的 notifyDataSetChanged。
例如,如果您说一个 Grid 对象,其属性包括图像 uri(用于设置图像)和字符串(用于在文本视图中设置)和一些数组列表,例如
List<Grid> gridList = new ArrayList<>();
您可以更新您在 Arraylist 中获得的任何新数据,并在完成更新后调用数组列表
adapter.notifyDataSetChanged();
最佳做法是在某些数据更改时更新视图及其数据。您必须始终这样做。方法
adapter.notifyDataSetChanged
为你做这个。
当您更新一些数据时,您必须告诉系统,因为有一个名为回收的重要操作,当您使用视图持有者时,您可以让系统回收视图,这意味着不更改日期的视图被存储在视图持有者上,因此列表不需要使用
findViewById
再次。
我有一个带有自定义 Adapter
的 RecyclerView
,用于在网格(使用 Gridlayout Manager
).
这些元素由一个 ImageView
和一个 TextView
组成。我想在收到网络请求的新结果后定期更新这两个视图(比如每 2 分钟一次)。
更新这些视图的最佳方式是什么?如何识别特定的 ViewHolder
?如何访问这些元素的 ViewHolder
值?最好在我想更改它们的 Activity
中保留对每个 ViewHolder
的引用吗?或者我应该用新值创建一个新元素并用它替换当前元素吗?什么是最佳实践?
如果您将图像视图和文本视图的值存储在数组列表中,您可以在数据集发生更改时调用适配器上的 notifyDataSetChanged。
例如,如果您说一个 Grid 对象,其属性包括图像 uri(用于设置图像)和字符串(用于在文本视图中设置)和一些数组列表,例如
List<Grid> gridList = new ArrayList<>();
您可以更新您在 Arraylist 中获得的任何新数据,并在完成更新后调用数组列表
adapter.notifyDataSetChanged();
最佳做法是在某些数据更改时更新视图及其数据。您必须始终这样做。方法
adapter.notifyDataSetChanged
为你做这个。
当您更新一些数据时,您必须告诉系统,因为有一个名为回收的重要操作,当您使用视图持有者时,您可以让系统回收视图,这意味着不更改日期的视图被存储在视图持有者上,因此列表不需要使用
findViewById
再次。