更新自定义Adapter for Recyclerview的ViewHolder值

时间:2016-02-18 10:22:16

标签: android android-recyclerview custom-adapter android-viewholder

我有RecyclerView个自定义Adapter,可以在网格中显示矩形元素(大约15个,如果用户添加/删除项目,则数字可以更改)(使用Gridlayout Manager) 。 RecyclerView

这些元素由ImageViewTextView组成。我希望在收到网络请求的新结果后(例如每2分钟)定期更新两个视图。

更新这些视图的最佳方法是什么?如何识别具体的ViewHolder?如何访问这些元素的ViewHolder值?最好是保留ViewHolder中我想要更改它们的每个Activity的引用吗?或者我应该使用新值创建一个新元素并用它替换当前元素?什么是最佳做法?

2 个答案:

答案 0 :(得分:3)

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

例如,如果你说一个Grid对象,其属性包括image uri(设置图像)和string(在文本视图中设置)和一些Array列表说

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

你可以更新你在Arraylist中获得的任何新数据以及在数组列表调用中完成更新之后

adapter.notifyDataSetChanged();

答案 1 :(得分:1)

最佳做法是更新视图及其在某些数据发生变化时的数据。你必须始终这样做。方法

adapter.notifyDataSetChanged 

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

findViewById 

一次。