我有一个arrayadapter.I可以添加项目到这个arrayadapter,但有时我需要更新这个适配器中的项目。我研究了互联网,无法找到任何有关更新特定项目的适配器然后我喜欢这个:
Integer test=randomAdapter.getPosition(user);
randomAdapter.remove(user);
randomAdapter.insert(updated_user,test);
randomAdapter.notifyDataSetChanged();
在这段代码user
是一个jsonobject。我正在获取此项目的位置然后我将其删除并将上传的用户数据添加到旧对象位置。这似乎有效。但我不知道这是一个更新项目的好主意,所以我问你。
如果这是一个坏主意,该怎么办?
答案 0 :(得分:1)
ArrayAdapter
维护对其使用的数组或List
对象的引用。 add(...)
,remove(...)
或insert(...)
等任何方法都直接作用于数组/列表,并使用synchronized
语句使其成为线程安全的。
你的方法似乎有点啰嗦,但它可以像其他任何方式一样安全地做事。当然,您可以自己操作原始数组/列表,但如果您需要线程安全,则必须将同步添加到您自己的代码中。为什么重新发明轮子?
如果您想查看ArrayAdapter
here