操作栏中不显示操作项

时间:2012-12-31 08:58:05

标签: android menu actionbarsherlock

无论我做什么,文本都不会与图像一起显示在操作项中。有人可以帮我这个。几天来一直苦苦挣扎。

 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);行,则会显示文本。但我想要两个。这里我将子菜单项添加到操作项,以便我得到下拉列表。

由于我没有得到关于question的建议,我决定至少以这种方式添加子菜单项。我有两个问题。

1)如何使文字与图标一起显示。

2)如何收听子菜单的点击次数,即我们如何知道点击子项目的时间。单击Item时,我们可以侦听onOptionsItemSelected(MenuItem项),但是子菜单项是什么情况?

如果有人可以帮助我,我会非常感激。

1 个答案:

答案 0 :(得分:1)

  1. 不幸的是SHOW_AS_ACTION_WITH_TEXT只是suggestion。根据个人经验,它似乎在横向模式下工作。

  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
        }
    }