我正在尝试在操作栏的顶部添加一个“添加项目”按钮。 (在应用程序图标和标题的右侧)。
在操作栏的正下方,我有两个选项卡,我可以在它们之间滑动。我还有一个为设置菜单定义的菜单 XML 文件。
我认为 actionbar 也使用菜单 XML。所以我添加了一个操作栏菜单 XML,但是当我使用
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM);
actionbar.setCustomView(R.menu.actionbar);
我的程序崩溃了。我相信我这样做是完全错误的。
我的操作栏 XML:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/item1" android:icon="@android:drawable/ic_menu_add"></item>
</menu>
我在一些教程中读到我应该将项目添加到操作栏并通过 mainActivity 中的 OnCreateOptionsMenu 函数填充它。但那是填充我的选项菜单的地方,而不是我的操作栏。
最佳答案
Activity 在其 onCreateOptionsMenu() 方法中填充 ActionBar。
不使用 setcustomview(),而是像这样覆盖 onCreateOptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
return true;
}
如果选择了 ActionBar 中的 Action ,则调用 onOptionsItemSelected() 方法。它接收选定的操作作为参数。根据这些信息,您的代码可以决定要做什么,例如:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menuitem1:
Toast.makeText(this,"Menu Item 1 selected",Toast.LENGTH_SHORT).show();
break;
case R.id.menuitem2:
Toast.makeText(this,"Menu item 2 selected",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return true;
}
关于android - 当您已经有选项卡和菜单时,将 'Add Button' 添加到顶部的操作栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15993247/