当您已有标签和菜单时,在顶部的操作栏中添加"添加按钮"

CRE*_*REW 5 android drawable android-fragments android-actionbar

我正在尝试在操作栏的顶部添加"添加项目"按钮.(在应用程序图标和标题的右侧).

在操作栏下方,我有两个可以在其间滑动的标签.我还为设置菜单定义了一个菜单XML文件.

我认为actionbar也使用菜单XML.所以我添加了一个操作栏菜单XML,但是当我使用时

actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM);
actionbar.setCustomView(R.menu.actionbar);
Run Code Online (Sandbox Code Playgroud)

我的程序崩溃了.我相信我做错了.

我的操作栏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>
Run Code Online (Sandbox Code Playgroud)

我读了一些教程,我应该将项添加到操作栏并通过mainActivity中的OnCreateOptionsMenu函数填充它.但那是我的选项菜单填充的地方,而不是我的操作栏.

And*_*Dev 8

活动在其onCreateOptionsMenu()方法中填充ActionBar.

而不是使用setcustomview(),只需像这样覆盖onCreateOptionsMenu

@Override
public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.mainmenu, menu);

   return true;
} 
Run Code Online (Sandbox Code Playgroud)

如果选择ActionBar中的操作,则调用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;
} 
Run Code Online (Sandbox Code Playgroud)