Selaa lähdekoodia

0.0.50.beta25 pre
- BottomMenu 和 MessageMenu 设置单选模式(.setSingleSelection())或多选模式(.setMultiSelection())时无需再必须指定 OnMenuItemClickListener;

Kongzue 3 kuukautta sitten
vanhempi
commit
c45fe3335f

+ 14 - 2
DialogX/src/main/java/com/kongzue/dialogx/dialogs/BottomMenu.java

@@ -538,6 +538,7 @@ public class BottomMenu extends BottomDialog {
                             return;
                         }
                         selectionIndex = position;
+                        log("### onMenuItemClickListener=" + onMenuItemClickListener);
                         switch (selectMode) {
                             case NONE:
                                 if (onMenuItemClickListener != null) {
@@ -563,7 +564,7 @@ public class BottomMenu extends BottomDialog {
                                             dismiss();
                                         }
                                     } else {
-                                        dismiss();
+                                        menuListAdapter.notifyDataSetInvalidated();
                                     }
                                 }
                                 break;
@@ -593,7 +594,18 @@ public class BottomMenu extends BottomDialog {
                                             dismiss();
                                         }
                                     } else {
-                                        dismiss();
+                                        if (selectionItems.contains(position)) {
+                                            selectionItems.remove(new Integer(position));
+                                        } else {
+                                            selectionItems.add(position);
+                                        }
+                                        menuListAdapter.notifyDataSetInvalidated();
+                                        resultArray = new int[selectionItems.size()];
+                                        selectTextArray = new CharSequence[selectionItems.size()];
+                                        for (int i = 0; i < selectionItems.size(); i++) {
+                                            resultArray[i] = selectionItems.get(i);
+                                            selectTextArray[i] = menuList.get(resultArray[i]);
+                                        }
                                     }
                                 }
                                 break;

+ 13 - 2
DialogX/src/main/java/com/kongzue/dialogx/dialogs/MessageMenu.java

@@ -561,7 +561,7 @@ public class MessageMenu extends MessageDialog {
                                             dismiss();
                                         }
                                     } else {
-                                        dismiss();
+                                        menuListAdapter.notifyDataSetInvalidated();
                                     }
                                 }
                                 break;
@@ -591,7 +591,18 @@ public class MessageMenu extends MessageDialog {
                                             dismiss();
                                         }
                                     } else {
-                                        dismiss();
+                                        if (selectionItems.contains(position)) {
+                                            selectionItems.remove(new Integer(position));
+                                        } else {
+                                            selectionItems.add(position);
+                                        }
+                                        menuListAdapter.notifyDataSetInvalidated();
+                                        resultArray = new int[selectionItems.size()];
+                                        selectTextArray = new CharSequence[selectionItems.size()];
+                                        for (int i = 0; i < selectionItems.size(); i++) {
+                                            resultArray[i] = selectionItems.get(i);
+                                            selectTextArray[i] = menuList.get(resultArray[i]);
+                                        }
                                     }
                                 }
                                 break;