2

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

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

什么是更新这些视图的最佳方法?我如何识别具体的ViewHolder?我怎样才能访问这些元素的ViewHolder值?最好在Activity中保留对每个ViewHolder的引用,以便我想更改它们?还是应该用新值创建一个新元素并用它替换当前元素?什么会被认为是最佳实践?

回答

3

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

例如,如果你有说一个网格对象,其属性包括图像URI(设置图像)和字符串(以文本视图设置)和一些数组列表说

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

可以更新任何新数据您在ArrayList中得到和你做在数组列表中的电话

adapter.notifyDataSetChanged(); 
+0

非常感谢您的回复,我会尽力的! – Eve

1

最好的做法更新后更新的观点,它的数据时,一些数据的变化。你必须始终这样做。方法

adapter.notifyDataSetChanged 

为您做到这一点。
当你更新一些数据时,你必须告诉系统,因为有一个重要的动作叫做回收,当你使用一个视图持有者时,你给系统回收一个视图的可能性,意味着什么意思是不改变日期的视图存储在视图保持器中,所以列表不需要再次使用

findViewById 

相关问题