android.view.MenuItem#hasSubMenu ( )源码实例Demo

下面列出了android.view.MenuItem#hasSubMenu ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: delion   文件: AppMenuAdapter.java
@Override
public int getItemViewType(int position) {
    MenuItem item = getItem(position);
    int viewCount = item.hasSubMenu() ? item.getSubMenu().size() : 1;

    if (item.getItemId() == R.id.update_menu_id) {
        return UPDATE_MENU_ITEM;
    } else if (viewCount == 4) {
        return FOUR_BUTTON_MENU_ITEM;
    } else if (viewCount == 3) {
        return THREE_BUTTON_MENU_ITEM;
    } else if (viewCount == 2) {
        return TITLE_BUTTON_MENU_ITEM;
    }
    return STANDARD_MENU_ITEM;
}
 
源代码2 项目: AndroidChromium   文件: AppMenuAdapter.java
@Override
public int getItemViewType(int position) {
    MenuItem item = getItem(position);
    int viewCount = item.hasSubMenu() ? item.getSubMenu().size() : 1;

    if (item.getItemId() == R.id.update_menu_id) {
        return UPDATE_MENU_ITEM;
    } else if (viewCount == 5) {
        return FIVE_BUTTON_MENU_ITEM;
    } else if (viewCount == 4) {
        return FOUR_BUTTON_MENU_ITEM;
    } else if (viewCount == 3) {
        return THREE_BUTTON_MENU_ITEM;
    } else if (viewCount == 2) {
        return TITLE_BUTTON_MENU_ITEM;
    }
    return STANDARD_MENU_ITEM;
}
 
源代码3 项目: talkback   文件: RadialMenuManager.java
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
  handler.removeCallbacks(radialMenuHint);

  EventId eventId = EVENT_ID_UNTRACKED; // Not tracking performance of menu events.
  pipeline.returnFeedback(
      eventId, Feedback.vibration(R.array.view_clicked_pattern).sound(R.raw.tick));

  boolean handled =
      menuActionInterceptor != null && menuActionInterceptor.onInterceptMenuClick(menuItem);

  if (!handled) {
    handled = client != null && client.onMenuItemClicked(menuItem);
  }

  if (!handled && (menuItem == null)) {
    pipeline.returnFeedback(
        EVENT_ID_UNTRACKED, Feedback.part().setInterruptAllFeedback(true));
  }

  if ((menuItem != null) && menuItem.hasSubMenu()) {
    playScaleForMenu(menuItem.getSubMenu());
  }

  return true;
}
 
源代码4 项目: 365browser   文件: AppMenuAdapter.java
@Override
public int getItemViewType(int position) {
    MenuItem item = getItem(position);
    int viewCount = item.hasSubMenu() ? item.getSubMenu().size() : 1;

    if (item.getItemId() == R.id.update_menu_id) {
        return UPDATE_MENU_ITEM;
    } else if (viewCount == 5) {
        return FIVE_BUTTON_MENU_ITEM;
    } else if (viewCount == 4) {
        return FOUR_BUTTON_MENU_ITEM;
    } else if (viewCount == 3) {
        return THREE_BUTTON_MENU_ITEM;
    } else if (viewCount == 2) {
        return TITLE_BUTTON_MENU_ITEM;
    }
    return STANDARD_MENU_ITEM;
}
 
源代码5 项目: CineLog   文件: ListFragment.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if(!item.hasSubMenu()) {
        createListView(item.getItemId());
    }

    return super.onOptionsItemSelected(item);
}
 
源代码6 项目: CineLog   文件: WishlistFragment.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (!item.hasSubMenu()) {
        createListView(item.getItemId());
    }

    return super.onOptionsItemSelected(item);
}
 
源代码7 项目: memetastic   文件: ContextUtils.java
/**
 * Try to tint all {@link Menu}s {@link MenuItem}s with given color
 */
@SuppressWarnings("ConstantConditions")
public void tintMenuItems(final Menu menu, final boolean recurse, @ColorInt final int iconColor) {
    for (int i = 0; i < menu.size(); i++) {
        MenuItem item = menu.getItem(i);
        try {
            tintDrawable(item.getIcon(), iconColor);
            if (item.hasSubMenu() && recurse) {
                tintMenuItems(item.getSubMenu(), recurse, iconColor);
            }
        } catch (Exception ignored) {
            // This should not happen at all, but may in bad menu.xml configuration
        }
    }
}
 
源代码8 项目: openlauncher   文件: ContextUtils.java
/**
 * Try to tint all {@link Menu}s {@link MenuItem}s with given color
 */
@SuppressWarnings("ConstantConditions")
public void tintMenuItems(final Menu menu, final boolean recurse, @ColorInt final int iconColor) {
    for (int i = 0; i < menu.size(); i++) {
        MenuItem item = menu.getItem(i);
        try {
            tintDrawable(item.getIcon(), iconColor);
            if (item.hasSubMenu() && recurse) {
                tintMenuItems(item.getSubMenu(), recurse, iconColor);
            }
        } catch (Exception ignored) {
            // This should not happen at all, but may in bad menu.xml configuration
        }
    }
}
 
源代码9 项目: Stringlate   文件: ContextUtils.java
/**
 * Try to tint all {@link Menu}s {@link MenuItem}s with given color
 */
@SuppressWarnings("ConstantConditions")
public void tintMenuItems(Menu menu, boolean recurse, @ColorInt int iconColor) {
    for (int i = 0; i < menu.size(); i++) {
        MenuItem item = menu.getItem(i);
        tintDrawable(item.getIcon(), iconColor);
        if (item.hasSubMenu() && recurse) {
            tintMenuItems(item.getSubMenu(), recurse, iconColor);
        }
    }
}
 
源代码10 项目: BubbleActions   文件: BubbleActions.java
/**
 * Set the actions using a menu xml resource. There are 3 requirements of the menu xml:
 * 1. The menu cannot have more than 5 items,
 * 2. Each menu item cannot have a submenu, and
 * 3. Each menu item must have an icon, title, and an id
 *
 * @param menuRes  The resource id of the menu
 * @param callback A callback to run on the main thread when an action is selected
 * @return the BubbleActions instance that called this method
 */
public BubbleActions fromMenu(int menuRes, final MenuCallback callback) {
    Menu menu = new PopupMenu(root.getContext(), null).getMenu();
    MenuInflater inflater = new MenuInflater(root.getContext());
    inflater.inflate(menuRes, menu);

    if (menu.size() > BubbleActionOverlay.MAX_ACTIONS) {
        throw new IllegalArgumentException(TAG + ": menu resource cannot have more than "
                + BubbleActionOverlay.MAX_ACTIONS + "actions.");
    }

    for (int i = 0; i < menu.size(); i++) {
        final MenuItem item = menu.getItem(i);

        if (item.hasSubMenu() || item.getIcon() == null || item.getTitle() == null || item.getItemId() == 0) {
            throw new IllegalArgumentException(TAG + ": menu resource cannot have a submenu and " +
                    "must have an icon, title, and id.");
        }

        final int id = item.getItemId();
        addAction(item.getTitle(), item.getIcon(), new Callback() {
            @Override
            public void doAction() {
                callback.doAction(id);
            }
        });
    }

    return this;
}
 
源代码11 项目: kimai-android   文件: ContextUtils.java
/**
 * Try to tint all {@link Menu}s {@link MenuItem}s with given color
 */
@SuppressWarnings("ConstantConditions")
public void tintMenuItems(Menu menu, boolean recurse, @ColorInt int iconColor) {
    for (int i = 0; i < menu.size(); i++) {
        MenuItem item = menu.getItem(i);
        try {
            tintDrawable(item.getIcon(), iconColor);
            if (item.hasSubMenu() && recurse) {
                tintMenuItems(item.getSubMenu(), recurse, iconColor);
            }
        } catch (Exception ignored) {
            // This should not happen at all, but may in bad menu.xml configuration
        }
    }
}
 
源代码12 项目: codeexamples-android   文件: MenuInflateFromXml.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        // For "Title only": Examples of matching an ID with one assigned in
        //                   the XML
        case R.id.jump:
            Toast.makeText(this, "Jump up in the air!", Toast.LENGTH_SHORT).show();
            return true;

        case R.id.dive:
            Toast.makeText(this, "Dive into the water!", Toast.LENGTH_SHORT).show();
            return true;

        // For "Groups": Toggle visibility of grouped menu items with
        //               nongrouped menu items
        case R.id.browser_visibility:
            // The refresh item is part of the browser group
            final boolean shouldShowBrowser = !mMenu.findItem(R.id.refresh).isVisible();
            mMenu.setGroupVisible(R.id.browser, shouldShowBrowser);
            break;
            
        case R.id.email_visibility:
            // The reply item is part of the email group
            final boolean shouldShowEmail = !mMenu.findItem(R.id.reply).isVisible();
            mMenu.setGroupVisible(R.id.email, shouldShowEmail);
            break;
            
        // Generic catch all for all the other menu resources
        default:
            // Don't toast text when a submenu is clicked
            if (!item.hasSubMenu()) {
                Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show();
                return true;
            }
            break;
    }
    
    return false;
}
 
源代码13 项目: letv   文件: ShareCompat.java
boolean shouldAddChooserIntent(MenuItem item) {
    return !item.hasSubMenu();
}
 
private List<BottomSheetItem> createAdapterItems(int dividerBackground, int titleTextColor,
                                                 int itemTextColor, int itemBackground,
                                                 int tintColor) {
    List<BottomSheetItem> items = new ArrayList<>();
    mTitles = 0;

    boolean addedSubMenu = false;

    for (int i = 0; i < mMenu.size(); i++) {
        MenuItem item = mMenu.getItem(i);

        if (item.isVisible()) {
            if (item.hasSubMenu()) {
                SubMenu subMenu = item.getSubMenu();

                if (i != 0 && addedSubMenu) {
                    if (mMode == BottomSheetBuilder.MODE_GRID) {
                        throw new IllegalArgumentException("MODE_GRID can't have submenus." +
                                " Use MODE_LIST instead");
                    }
                    items.add(new BottomSheetDivider(dividerBackground));
                }

                CharSequence title = item.getTitle();
                if (title != null && !title.equals("")) {
                    items.add(new BottomSheetHeader(title.toString(), titleTextColor));
                    mTitles++;
                }

                for (int j = 0; j < subMenu.size(); j++) {
                    MenuItem subItem = subMenu.getItem(j);
                    if (subItem.isVisible()) {
                        items.add(new BottomSheetMenuItem(subItem, itemTextColor,
                                itemBackground, tintColor));
                        addedSubMenu = true;
                    }
                }
            } else {
                items.add(new BottomSheetMenuItem(item, itemTextColor, itemBackground, tintColor));
            }
        }
    }

    return items;
}
 
private List<BottomSheetItem> createAdapterItems(int dividerBackground, int titleTextColor,
                                                 int itemTextColor, int itemBackground,
                                                 int tintColor) {
    List<BottomSheetItem> items = new ArrayList<>();
    mTitles = 0;

    boolean addedSubMenu = false;

    for (int i = 0; i < mMenu.size(); i++) {
        MenuItem item = mMenu.getItem(i);

        if (item.isVisible()) {
            if (item.hasSubMenu()) {
                SubMenu subMenu = item.getSubMenu();

                if (i != 0 && addedSubMenu) {
                    if (mMode == BottomSheetBuilder.MODE_GRID) {
                        throw new IllegalArgumentException("MODE_GRID can't have submenus." +
                                " Use MODE_LIST instead");
                    }
                    items.add(new BottomSheetDivider(dividerBackground));
                }

                CharSequence title = item.getTitle();
                if (title != null && !title.equals("")) {
                    items.add(new BottomSheetHeader(title.toString(), titleTextColor));
                    mTitles++;
                }

                for (int j = 0; j < subMenu.size(); j++) {
                    MenuItem subItem = subMenu.getItem(j);
                    if (subItem.isVisible()) {
                        items.add(new BottomSheetMenuItem(subItem, itemTextColor,
                                itemBackground, tintColor));
                        addedSubMenu = true;
                    }
                }
            } else {
                items.add(new BottomSheetMenuItem(item, itemTextColor, itemBackground, tintColor));
            }
        }
    }

    return items;
}
 
源代码16 项目: ThreePhasesBottomSheet   文件: MenuSheetView.java
/**
 * Flattens the visible menu items of {@link #menu} into {@link #items},
 * while inserting separators between items when necessary.
 *
 * Adapted from the Design support library's NavigationMenuPresenter implementation
 */
private void prepareMenuItems() {
    items.clear();
    int currentGroupId = 0;

    // Iterate over the menu items
    for (int i = 0; i < menu.size(); i++) {
        MenuItem item = menu.getItem(i);
        if (item.isVisible()) {
            if (item.hasSubMenu()) {
                // Flatten the submenu
                SubMenu subMenu = item.getSubMenu();
                if (subMenu.hasVisibleItems()) {
                    if (menuType == LIST) {
                        items.add(SheetMenuItem.SEPARATOR);

                        // Add a header item if it has text
                        if (!TextUtils.isEmpty(item.getTitle())) {
                            items.add(SheetMenuItem.of(item));
                        }
                    }

                    // Add the sub-items
                    for (int subI = 0, size = subMenu.size(); subI < size; subI++) {
                        MenuItem subMenuItem = subMenu.getItem(subI);
                        if (subMenuItem.isVisible()) {
                            items.add(SheetMenuItem.of(subMenuItem));
                        }
                    }

                    // Add one more separator to the end to close it off if we have more items
                    if (menuType == LIST && i != menu.size() - 1) {
                        items.add(SheetMenuItem.SEPARATOR);
                    }
                }
            } else {
                int groupId = item.getGroupId();
                if (groupId != currentGroupId && menuType == LIST) {
                    items.add(SheetMenuItem.SEPARATOR);
                }
                items.add(SheetMenuItem.of(item));
                currentGroupId = groupId;
            }
        }
    }
}
 
源代码17 项目: MiBandDecompiled   文件: aa.java
boolean a(MenuItem menuitem)
{
    return !menuitem.hasSubMenu();
}
 
源代码18 项目: CodenameOne   文件: ShareCompat.java
boolean shouldAddChooserIntent(MenuItem item) {
    return !item.hasSubMenu();
}
 
源代码19 项目: bottomsheet   文件: MenuSheetView.java
/**
 * Flattens the visible menu items of {@link #menu} into {@link #items},
 * while inserting separators between items when necessary.
 *
 * Adapted from the Design support library's NavigationMenuPresenter implementation
 */
private void prepareMenuItems() {
    items.clear();
    int currentGroupId = 0;

    // Iterate over the menu items
    for (int i = 0; i < menu.size(); i++) {
        MenuItem item = menu.getItem(i);
        if (item.isVisible()) {
            if (item.hasSubMenu()) {
                // Flatten the submenu
                SubMenu subMenu = item.getSubMenu();
                if (subMenu.hasVisibleItems()) {
                    if (menuType == LIST) {
                        items.add(SheetMenuItem.SEPARATOR);

                        // Add a header item if it has text
                        if (!TextUtils.isEmpty(item.getTitle())) {
                            items.add(SheetMenuItem.of(item));
                        }
                    }

                    // Add the sub-items
                    for (int subI = 0, size = subMenu.size(); subI < size; subI++) {
                        MenuItem subMenuItem = subMenu.getItem(subI);
                        if (subMenuItem.isVisible()) {
                            items.add(SheetMenuItem.of(subMenuItem));
                        }
                    }

                    // Add one more separator to the end to close it off if we have more items
                    if (menuType == LIST && i != menu.size() - 1) {
                        items.add(SheetMenuItem.SEPARATOR);
                    }
                }
            } else {
                int groupId = item.getGroupId();
                if (groupId != currentGroupId && menuType == LIST) {
                    items.add(SheetMenuItem.SEPARATOR);
                }
                items.add(SheetMenuItem.of(item));
                currentGroupId = groupId;
            }
        }
    }
}
 
源代码20 项目: adt-leanback-support   文件: ShareCompat.java
boolean shouldAddChooserIntent(MenuItem item) {
    return !item.hasSubMenu();
}