1

オプションメニューを表示しようとしています。menu.add() メソッドを使用して実行時にメニューを作成しています。Android API 17 を使用しています。クリックしなければならないメニュー ボタンはありますか? Map<> インスタンス変数として「menuItemsMap」を使用しており、これらのメニューを再利用できるように、そのマップにメニューを追加しています。前もって感謝します。

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 の右上にある 3 つの点です。ここに画像の説明を入力

メニューを読むhttp://developer.android.com/guide/topics/ui/menus.html

于 2013-01-03T15:39:10.183 に答える