我有一个sortedlist,我用它来表示回收器视图中的数据,但我正在努力“清除”api调用之间的数据。有什么帮助吗?我现在只是像这样在列表中循环:

for(int i = 0; i < mList.size(); i++){
   removeItemAt(i);
}

这似乎不一致地删除了一些项目?
提前谢谢!:)

最佳答案

如果您查看source code,问题是当调用SortedList索引时,removeItemAt会更改大小。因此,当您的循环迭代导致不一致的结果时,mList.size()将发生变化。
以下是从RecyclerView中移除项目的方法。

public void clear() {
     mList.beginBatchedUpdates();
     //remove items at index 0 so the remove callback will be batched
     while (mList.size() > 0) {
         mList.remove(mList.get(0));
     }
     mList.endBatchedUpdates();
}

10-05 21:16