FileDocCategorySizeDatePackage
ActionMenu.javaAPI DocAndroid 5.1 API7738Thu Mar 12 22:22:10 GMT 2015com.android.internal.view.menu

ActionMenu

public class ActionMenu extends Object implements android.view.Menu
hide

Fields Summary
private android.content.Context
mContext
private boolean
mIsQwerty
private ArrayList
mItems
Constructors Summary
public ActionMenu(android.content.Context context)

        mContext = context;
        mItems = new ArrayList<ActionMenuItem>();
    
Methods Summary
public android.view.MenuItemadd(java.lang.CharSequence title)

        return add(0, 0, 0, title);
    
public android.view.MenuItemadd(int titleRes)

        return add(0, 0, 0, titleRes);
    
public android.view.MenuItemadd(int groupId, int itemId, int order, int titleRes)

        return add(groupId, itemId, order, mContext.getResources().getString(titleRes));
    
public android.view.MenuItemadd(int groupId, int itemId, int order, java.lang.CharSequence title)

        ActionMenuItem item = new ActionMenuItem(getContext(),
                groupId, itemId, 0, order, title);
        mItems.add(order, item);
        return item;
    
public intaddIntentOptions(int groupId, int itemId, int order, android.content.ComponentName caller, android.content.Intent[] specifics, android.content.Intent intent, int flags, android.view.MenuItem[] outSpecificItems)

        PackageManager pm = mContext.getPackageManager();
        final List<ResolveInfo> lri =
                pm.queryIntentActivityOptions(caller, specifics, intent, 0);
        final int N = lri != null ? lri.size() : 0;

        if ((flags & FLAG_APPEND_TO_GROUP) == 0) {
            removeGroup(groupId);
        }

        for (int i=0; i<N; i++) {
            final ResolveInfo ri = lri.get(i);
            Intent rintent = new Intent(
                ri.specificIndex < 0 ? intent : specifics[ri.specificIndex]);
            rintent.setComponent(new ComponentName(
                    ri.activityInfo.applicationInfo.packageName,
                    ri.activityInfo.name));
            final MenuItem item = add(groupId, itemId, order, ri.loadLabel(pm))
                    .setIcon(ri.loadIcon(pm))
                    .setIntent(rintent);
            if (outSpecificItems != null && ri.specificIndex >= 0) {
                outSpecificItems[ri.specificIndex] = item;
            }
        }

        return N;
    
public android.view.SubMenuaddSubMenu(int groupId, int itemId, int order, java.lang.CharSequence title)

        // TODO Implement submenus
        return null;
    
public android.view.SubMenuaddSubMenu(int groupId, int itemId, int order, int titleRes)

        // TODO Implement submenus
        return null;
    
public android.view.SubMenuaddSubMenu(java.lang.CharSequence title)

        // TODO Implement submenus
        return null;
    
public android.view.SubMenuaddSubMenu(int titleRes)

        // TODO Implement submenus
        return null;
    
public voidclear()

        mItems.clear();
    
public voidclose()

    
public android.view.MenuItemfindItem(int id)

        return mItems.get(findItemIndex(id));
    
private intfindItemIndex(int id)

        final ArrayList<ActionMenuItem> items = mItems;
        final int itemCount = items.size();
        for (int i = 0; i < itemCount; i++) {
            if (items.get(i).getItemId() == id) {
                return i;
            }
        }
        
        return -1;
    
private ActionMenuItemfindItemWithShortcut(int keyCode, android.view.KeyEvent event)

        // TODO Make this smarter.
        final boolean qwerty = mIsQwerty;
        final ArrayList<ActionMenuItem> items = mItems;
        final int itemCount = items.size();
        
        for (int i = 0; i < itemCount; i++) {
            ActionMenuItem item = items.get(i);
            final char shortcut = qwerty ? item.getAlphabeticShortcut() :
                    item.getNumericShortcut();
            if (keyCode == shortcut) {
                return item;
            }
        }
        return null;
    
public android.content.ContextgetContext()

        return mContext;
    
public android.view.MenuItemgetItem(int index)

        return mItems.get(index);
    
public booleanhasVisibleItems()

        final ArrayList<ActionMenuItem> items = mItems;
        final int itemCount = items.size();
        
        for (int i = 0; i < itemCount; i++) {
            if (items.get(i).isVisible()) {
                return true;
            }
        }
        
        return false;
    
public booleanisShortcutKey(int keyCode, android.view.KeyEvent event)

        return findItemWithShortcut(keyCode, event) != null;
    
public booleanperformIdentifierAction(int id, int flags)

        final int index = findItemIndex(id);
        if (index < 0) {
            return false;
        }

        return mItems.get(index).invoke();
    
public booleanperformShortcut(int keyCode, android.view.KeyEvent event, int flags)

        ActionMenuItem item = findItemWithShortcut(keyCode, event);
        if (item == null) {
            return false;
        }
        
        return item.invoke();
    
public voidremoveGroup(int groupId)

        final ArrayList<ActionMenuItem> items = mItems;
        int itemCount = items.size();
        int i = 0;
        while (i < itemCount) {
            if (items.get(i).getGroupId() == groupId) {
                items.remove(i);
                itemCount--;
            } else {
                i++;
            }
        }
    
public voidremoveItem(int id)

        mItems.remove(findItemIndex(id));
    
public voidsetGroupCheckable(int group, boolean checkable, boolean exclusive)

        final ArrayList<ActionMenuItem> items = mItems;
        final int itemCount = items.size();
        
        for (int i = 0; i < itemCount; i++) {
            ActionMenuItem item = items.get(i);
            if (item.getGroupId() == group) {
                item.setCheckable(checkable);
                item.setExclusiveCheckable(exclusive);
            }
        }
    
public voidsetGroupEnabled(int group, boolean enabled)

        final ArrayList<ActionMenuItem> items = mItems;
        final int itemCount = items.size();
        
        for (int i = 0; i < itemCount; i++) {
            ActionMenuItem item = items.get(i);
            if (item.getGroupId() == group) {
                item.setEnabled(enabled);
            }
        }
    
public voidsetGroupVisible(int group, boolean visible)

        final ArrayList<ActionMenuItem> items = mItems;
        final int itemCount = items.size();
        
        for (int i = 0; i < itemCount; i++) {
            ActionMenuItem item = items.get(i);
            if (item.getGroupId() == group) {
                item.setVisible(visible);
            }
        }
    
public voidsetQwertyMode(boolean isQwerty)

        mIsQwerty = isQwerty;
    
public intsize()

        return mItems.size();