From 434d84af8b121e8d45d0ec5551abaa5b4b32ae19 Mon Sep 17 00:00:00 2001 From: jrfeng Date: Fri, 27 Nov 2020 19:16:33 +0800 Subject: [PATCH] fix bug: 'SelectableHelper#clearSelected()' --- .../main/java/recyclerview/helper/SelectableHelper.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/helper/src/main/java/recyclerview/helper/SelectableHelper.java b/helper/src/main/java/recyclerview/helper/SelectableHelper.java index b81f444..53f89c8 100644 --- a/helper/src/main/java/recyclerview/helper/SelectableHelper.java +++ b/helper/src/main/java/recyclerview/helper/SelectableHelper.java @@ -29,6 +29,7 @@ import java.util.ArrayList; import java.util.Collections; +import java.util.Iterator; import java.util.List; /** @@ -141,9 +142,12 @@ public void setSelectMode(SelectMode mode) { /** * 清除所所列表项的选中状态。 */ + @SuppressWarnings("WhileLoopReplaceableByForEach") public void clearSelected() { - for (Integer selectedPosition : mSelectedPositions.subList(0, mSelectedPositions.size())) { - deselect(selectedPosition); + Iterator iterator = mSelectedPositions.iterator(); + while (iterator.hasNext()) { + // 不能使用 for 循环,因为该方法会会删除列表中的元素 + deselect(iterator.next()); } notifySelectCountChanged(); }