5

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

在操作栏的正下方,我有两个可以在它们之间滑动的选项卡。我还为设置菜单定义了一个菜单 XML 文件。

我认为操作栏也使用菜单 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 函数填充它。但这就是填充我的选项菜单的地方,而不是我的操作栏。

4

1 回答 1

8

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

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

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

   return true;
} 

如果选择了 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;
} 
于 2013-04-13T21:51:32.673 回答