Example usage for android.support.v4.view SubMenu setGroupCheckable

List of usage examples for android.support.v4.view SubMenu setGroupCheckable

Introduction

In this page you can find the example usage for android.support.v4.view SubMenu setGroupCheckable.

Prototype

public void setGroupCheckable(int group, boolean checkable, boolean exclusive);

Source Link

Document

Control whether a particular group of items can show a check mark.

Usage

From source file:com.actionbarsherlock.internal.view.menu.MenuBuilder.java

/** Bind the non-action items to a native menu. */
public boolean bindOverflowToNative(android.view.Menu menu,
        android.view.MenuItem.OnMenuItemClickListener listener,
        HashMap<android.view.MenuItem, MenuItemImpl> map) {
    final ArrayList<MenuItemImpl> nonActionItems = getNonActionItems();
    if (nonActionItems == null || nonActionItems.size() == 0) {
        return false;
    }//from   w  w w .j  a v  a2 s . c  om

    menu.clear();
    boolean visible = false;
    for (MenuItemImpl nonActionItem : nonActionItems) {
        if (nonActionItem.isVisible()) {
            visible = true;

            android.view.MenuItem nativeItem;
            if (nonActionItem.hasSubMenu()) {
                android.view.SubMenu nativeSub = menu.addSubMenu(nonActionItem.getGroupId(),
                        nonActionItem.getItemId(), nonActionItem.getOrder(), nonActionItem.getTitle());

                SubMenuBuilder subMenu = (SubMenuBuilder) nonActionItem.getSubMenu();
                for (MenuItemImpl subItem : subMenu.getVisibleItems()) {
                    android.view.MenuItem nativeSubItem = nativeSub.add(subItem.getGroupId(),
                            subItem.getItemId(), subItem.getOrder(), subItem.getTitle());

                    nativeSubItem.setIcon(subItem.getIcon());
                    nativeSubItem.setOnMenuItemClickListener(listener);
                    nativeSubItem.setEnabled(subItem.isEnabled());
                    nativeSubItem.setIntent(subItem.getIntent());
                    nativeSubItem.setNumericShortcut(subItem.getNumericShortcut());
                    nativeSubItem.setAlphabeticShortcut(subItem.getAlphabeticShortcut());
                    nativeSubItem.setTitleCondensed(subItem.getTitleCondensed());
                    nativeSubItem.setCheckable(subItem.isCheckable());
                    nativeSubItem.setChecked(subItem.isChecked());

                    if (subItem.isExclusiveCheckable()) {
                        nativeSub.setGroupCheckable(subItem.getGroupId(), true, true);
                    }

                    map.put(nativeSubItem, subItem);
                }

                nativeItem = nativeSub.getItem();
            } else {
                nativeItem = menu.add(nonActionItem.getGroupId(), nonActionItem.getItemId(),
                        nonActionItem.getOrder(), nonActionItem.getTitle());
            }
            nativeItem.setIcon(nonActionItem.getIcon());
            nativeItem.setOnMenuItemClickListener(listener);
            nativeItem.setEnabled(nonActionItem.isEnabled());
            nativeItem.setIntent(nonActionItem.getIntent());
            nativeItem.setNumericShortcut(nonActionItem.getNumericShortcut());
            nativeItem.setAlphabeticShortcut(nonActionItem.getAlphabeticShortcut());
            nativeItem.setTitleCondensed(nonActionItem.getTitleCondensed());
            nativeItem.setCheckable(nonActionItem.isCheckable());
            nativeItem.setChecked(nonActionItem.isChecked());

            if (nonActionItem.isExclusiveCheckable()) {
                menu.setGroupCheckable(nonActionItem.getGroupId(), true, true);
            }

            map.put(nativeItem, nonActionItem);
        }
    }

    return visible;
}