由于某些原因,我想在动作栏中完全创建动作菜单项。但是当我从代码中添加菜单项时,它们会显示为设置菜单项的溢出。
下面是我的代码。任何解决方案
@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;
}
答案 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;
}