diff --git a/helper/src/main/java/recyclerview/helper/SelectableHelper.java b/helper/src/main/java/recyclerview/helper/SelectableHelper.java index c80adc6..169d169 100644 --- a/helper/src/main/java/recyclerview/helper/SelectableHelper.java +++ b/helper/src/main/java/recyclerview/helper/SelectableHelper.java @@ -64,13 +64,22 @@ public class SelectableHelper { private OnSelectCountChangeListener mOnSelectCountChangeListener; public SelectableHelper(@NonNull RecyclerView.Adapter adapter) { + this(adapter, null); + } + + public SelectableHelper(@NonNull RecyclerView.Adapter adapter, @Nullable List selectedPositions) { NonNullUtil.requireNonNull(adapter); mAdapter = adapter; mRecyclerView = null; - mSelectMode = SelectMode.SINGLE; - mSelectedPositions = new ArrayList<>(); + if (selectedPositions == null) { + mSelectMode = SelectMode.SINGLE; + mSelectedPositions = new ArrayList<>(); + } else { + mSelectMode = SelectMode.MULTIPLE; + mSelectedPositions = new ArrayList<>(selectedPositions); + } initAdapterDataObserver(); } @@ -182,6 +191,15 @@ public boolean isSelected(int position) { return mSelectedPositions.contains(position); } + /** + * 获取被选中项的数量。 + * + * @return 被选中项的数量。 + */ + public int getSelectedCount() { + return mSelectedPositions.size(); + } + /** * 获取所有已被选中的列表项的索引值。 *