我正在向 Android (Kotlin)
适配器添加元素,扩展 ArrayObjectAdapter
. 我使用addAll来添加项目 .
来自ArrayObjectAdapter:
public void addAll(int index, Collection items) {
int itemsCount = items.size();
if (itemsCount == 0) {
return;
}
mItems.addAll(index, items);
notifyItemRangeInserted(index, itemsCount);
}
我的问题是,如何避免适配器中的重复元素 . 问题是, ArrayObjectAdapter
的后备数据收集是一个List(不是Set),当我使用 addAll
时,可以添加一个重复的元素 . 我可以使用 addAll
与 LinkedHashSet
(因为它需要一个Collection作为输入),但如果我添加另一个 hashset
它可能与第一个 hashset
重复,所以我仍然需要检查整个列表 . 我当然可以在每次添加内容时浏览所有列表元素,但由于显而易见的原因,这不是一个好的解决方案 . 在这种情况下是否有一种有效的方法来防止重复?谢谢 .
1 回答
您可以在适配器中使用
DiffUtil
.这是关于Link的文件 .
这是DiffUtil的示例:
您只需要传递旧的和新的列表 .
希望这有帮助 .