0

何をしても、画像と一緒にアクションアイテムにテキストが表示されません。誰かがこれを手伝ってくれませんか。数日間これに苦労してきました。

 public boolean onCreateOptionsMenu(Menu menu) {


             SubMenu subMenu1 = menu.addSubMenu("Types");
                subMenu1.add("type-1");
                subMenu1.add("type-2");
                subMenu1.add("type-3");

                MenuItem subMenu1Item = subMenu1.getItem();
                subMenu1Item.setIcon(R.drawable.down_arrow);
                subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);



        return true;
    }

上記のコードでは、「タイプ」テキストはアイコンと一緒に表示されません。アイコンのみが表示されます。行を削除するとsubMenu1Item.setIcon(R.drawable.down_arrow);、テキストが表示されます。しかし、私は両方が欲しいです。ここでは、アクションアイテムにサブメニュー項目を追加して、ドロップダウンを取得しています。

この質問に対する提案が得られなかったので、少なくともこの方法でサブメニュー項目を追加することにしました。ここで2つの質問があります。

1)アイコンと一緒にテキストを表示する方法。

2)サブメニューアイテムのクリックを聞く方法、つまり、サブアイテムがクリックされたことをどのように知るか。アイテムをクリックすると、onOptionsItemSelected(MenuItem item)でリッスンできますが、サブメニューアイテムの場合はどうなりますか?

誰かがこれについて私を助けてくれるなら、私はとても感謝しています。

4

1 に答える 1

1
  1. 残念ながら、SHOW_AS_ACTION_WITH_TEXTは単なる提案です。個人的な経験から、それはランドスケープモードで動作するようです。

  2. onOptionsItemSelected()でサブメニュー項目をリッスンすることもできます

    subMenu1Item.add(GROUP_ID, ITEM_ID, ORDER, "type-1");
    
    // ...
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
       switch (item.getItemId()) {
          case ITEM_ID: // do something
        }
    }
    
于 2012-12-31T10:36:56.060 に答える