1

我正在尝试显示选项菜单。我在运行时使用 menu.add() 方法创建菜单。我正在使用 android API 17。我们必须单击任何菜单按钮吗?我将“menuItemsMap”作为 Map<> 实例变量,并将菜单添加到该地图中,以便我可以重用这些菜单。提前致谢。

public boolean onCreateOptionsMenu(Menu menu) {
        menuItemsMap = new HashMap<Integer, MenuItem>();
        menuItemsMap.put(
                R.string.pizzasCart_pizzasList,
                menu.add(R.string.pizzasCart_pizzasList).setIcon(
                        R.drawable.script_edit));
        menuItemsMap.put(
                R.string.pizzasList_viewShoppingCart,
                menu.add(R.string.pizzasList_viewShoppingCart).setIcon(
                        R.drawable.cart));
        menuItemsMap.put(
                R.string.pizzasCart_checkout,
                menu.add(R.string.pizzasCart_checkout).setIcon(
                        R.drawable.cart_go));
        menuItemsMap.put(
                R.string.pizzasList_viewUserData,
                menu.add(R.string.pizzasList_viewUserData).setIcon(
                        R.drawable.user_green));
        /*menu.add(1,1,0,R.string.pizzasCart_pizzasList).setIcon(R.drawable.script_edit);
        menu.add(1,2,1,R.string.pizzasList_viewShoppingCart).setIcon(R.drawable.cart);
        menu.add(1,3,2,R.string.pizzasList_viewUserData).setIcon(R.drawable.user_green);*/      
        return true;
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        setMenuItemState(R.string.pizzasCart_pizzasList, false, false);
        setMenuItemState(R.string.pizzasList_viewShoppingCart, true,
                !isShoppingCartEmpty());
        setMenuItemState(R.string.pizzasCart_checkout, true,
                isShoppingCartCheckoutAllowed());
        setMenuItemState(R.string.pizzasList_viewUserData, true, true);

        return true;
    }

    protected void setMenuItemState(int itemTitleResID, boolean visible, boolean enabled) {
        MenuItem item = menuItemsMap.get(itemTitleResID);
        item.setEnabled(enabled);
        item.setVisible(visible);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getTitle().equals(getString(R.string.pizzasList_viewUserData))) {
            showUserDataActivity();

        } else if (item.getTitle().equals(
                getString(R.string.pizzasCart_pizzasList))) {
            showPizzasListActivity();

        } else if (item.getTitle().equals(
                getString(R.string.pizzasList_viewShoppingCart))) {
            showPizzasCartListActivity();

        } else if (item.getTitle().equals(
                getString(R.string.pizzasCart_checkout))) {
            checkoutShoppingCartPromptUser();
        }

        return true;
    }
4

1 回答 1

3

菜单按钮是操作栏 #4 右上角的三个点在此处输入图像描述

阅读菜单http://developer.android.com/guide/topics/ui/menus.html

于 2013-01-03T15:39:10.183 回答