在操作栏中动态添加操作项

时间:2013-06-25 15:14:18

标签: android android-actionbar menuitem

由于某些原因,我想在动作栏中完全创建动作菜单项。但是当我从代码中添加菜单项时,它们会显示为设置菜单项的溢出。

下面是我的代码。任何解决方案

enter image description here

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    //getMenuInflater().inflate(R.menu.start, menu);

    MenuItem logoutMI= menu.add(0,1,0,"Logout");
    logoutMI.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    logoutMI.setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT);

    MenuItem configMI= menu.add(0,2,1,"Configuration");
    configMI.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    configMI.setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT);

    return true;
}

2 个答案:

答案 0 :(得分:5)

我认为您需要在setShowAsAction上将这些标记值组合在一起。 来自文档,http://developer.android.com/reference/android/view/MenuItem.html#setShowAsAction(int)

  

SHOW_AS_ACTION_ALWAYS,SHOW_AS_ACTION_IF_ROOM之一,或者   应该使用SHOW_AS_ACTION_NEVER,并且你可以选择OR   SHOW_AS_ACTION_WITH_TEXT的值。 SHOW_AS_ACTION_WITH_TEXT

实施例

 logoutMI.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

如果这确实解决了您的问题,请告诉我。

答案 1 :(得分:1)

查看其他菜单项的order字段,您要添加“注销”和“配置”,订单为0,但如果所有其他菜单项的订单均为0,则将根据它们添加到菜单中的时间进行排序。

此外,您只想使用或运算符调用setShowAsAction()一次:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    //getMenuInflater().inflate(R.menu.start, menu);

    MenuItem logoutMI= menu.add(0,1,0,"Logout");
    logoutMI.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

    MenuItem configMI= menu.add(0,2,0,"Configuration");
    configMI.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

    return true;
}