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

Android 在操作栏中动态添加操作项,android,android-actionbar,menuitem,Android,Android Actionbar,Menuitem,出于某些原因,我想在ActionBar中完全友好地创建我的动作菜单项。但当我从代码中添加菜单项时,它们显示为设置菜单项的溢出 下面是我的代码。有解决办法吗 @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. //getMenuInflater().inflate(R.men

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

下面是我的代码。有解决办法吗

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


我认为您需要在
设置ShowAsAction
上同时显示或显示这些标记值。 从文件来看

始终显示为动作,如果房间显示为动作,或 绝不应使用SHOW_AS_ACTION_,并且您可以选择或 值,显示为动作,显示文本。用文本显示作为动作


让我知道这是否真的解决了您的问题。

查看其他菜单项的
顺序
字段,您正在添加顺序为0的“注销”和“配置”,但如果所有其他菜单项的顺序为0,则将根据添加到菜单的时间对其进行排序

此外,您只需要使用or运算符调用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;
}

在某个时刻,您将用完操作栏中的空间,菜单项必须进入溢出。您是否试图通过“现金”或“菜单”在某处添加“注销”和“配置”?在这种情况下,“Info”和“Refresh”将落入溢出。图像中显示的菜单项是从XML菜单文件以静态方式创建的,仅以屏幕截图为例
@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;
}