diff --git a/filepicker/src/main/java/com/github/angads25/filepicker/controller/adapters/FileListAdapter.java b/filepicker/src/main/java/com/github/angads25/filepicker/controller/adapters/FileListAdapter.java index b82dd39..1768029 100644 --- a/filepicker/src/main/java/com/github/angads25/filepicker/controller/adapters/FileListAdapter.java +++ b/filepicker/src/main/java/com/github/angads25/filepicker/controller/adapters/FileListAdapter.java @@ -155,7 +155,13 @@ public View getView(final int i, View view, ViewGroup viewGroup) { holder.fmark.setOnCheckedChangedListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(MaterialCheckbox checkbox, boolean isChecked) { - item.setMarked(isChecked); + //限制最大选择数量 + if (MarkedItemList.getFileCount() < properties.max_count){ + item.setMarked(isChecked); + } else { + item.setMarked(false); + holder.fmark.setChecked(false); + } if (item.isMarked()) { if(properties.selection_mode == DialogConfigs.MULTI_MODE) { MarkedItemList.addSelectedItem(item); diff --git a/filepicker/src/main/java/com/github/angads25/filepicker/model/DialogConfigs.java b/filepicker/src/main/java/com/github/angads25/filepicker/model/DialogConfigs.java index 5e351c2..48b189c 100644 --- a/filepicker/src/main/java/com/github/angads25/filepicker/model/DialogConfigs.java +++ b/filepicker/src/main/java/com/github/angads25/filepicker/model/DialogConfigs.java @@ -52,6 +52,11 @@ public abstract class DialogConfigs { * can be selected. */ public static final int FILE_AND_DIR_SELECT = 2; + + /* + * Max Select Count , defalut 9 + */ + public static final int MAX_COUNT = 9; /* PARENT_DIRECTORY*/ public static final String DIRECTORY_SEPERATOR = "/"; diff --git a/filepicker/src/main/java/com/github/angads25/filepicker/model/DialogProperties.java b/filepicker/src/main/java/com/github/angads25/filepicker/model/DialogProperties.java index bea7093..81424b8 100644 --- a/filepicker/src/main/java/com/github/angads25/filepicker/model/DialogProperties.java +++ b/filepicker/src/main/java/com/github/angads25/filepicker/model/DialogProperties.java @@ -42,6 +42,11 @@ public class DialogProperties { * See DialogConfigs for more info. Set to FILE_SELECT as default value by constructor. */ public int selection_type; + + /** + * add property max_count + */ + public int max_count; /** The Parent/Root Directory. List of Files are populated from here. Can be set * to any readable directory. /sdcard is the default location. @@ -78,8 +83,9 @@ public DialogProperties() { selection_mode = DialogConfigs.SINGLE_MODE; selection_type = DialogConfigs.FILE_SELECT; root = new File(DialogConfigs.DEFAULT_DIR); + max_count = DialogConfigs.MAX_COUNT; error_dir = new File(DialogConfigs.DEFAULT_DIR); offset = new File(DialogConfigs.DEFAULT_DIR); extensions = null; } -} \ No newline at end of file +}