向活动添加操作栏和选项菜单

时间:2018-06-08 15:52:47

标签: android android-actionbar android-menu

我正在为我的应用使用this示例。此示例没有操作栏。

这是我想要在其中添加带有选项菜单的操作栏的活动布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">



    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="500dp"
        android:layout_gravity="bottom"
        android:background="#000"
        tools:context="com.example.android.camera2basic.CameraActivity" />

</LinearLayout>

因此,LinearLayoutFrameLayout内部作为片段的容器。在主要活动中,我实施了onCreateOptionsMenu并添加了setSupportActionBar((Toolbar)findViewById(R.id.my_toolbar));,但菜单中的操作栏未显示。

如何为此活动添加带有菜单的ActionBar

2 个答案:

答案 0 :(得分:0)

将“活动主题”设置为NoActionBar,并在“活动” onCreate方法中添加以下两行代码。

在布局中添加工具栏。

ToolBar toolbar = findViewById ();
setSupportActionBar(toolbar);

答案 1 :(得分:-1)

在菜单文件夹中创建一个main_menu.xml

<item
    android:id="@+id/menu1"
    android:title="Option 1" />
<item
    android:id="@+id/menu2"
    android:title="Optiion 2" />

在您的活动中添加此内容

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu, menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()){
        case R.id.menu1:
            Toast.makeText(this, "Clicked Menu 1", Toast.LENGTH_SHORT).show();
            break;
        case R.id.menu2:
            Toast.makeText(this, "Clicked Menu 2", Toast.LENGTH_SHORT).show();
            break;
        default:
            break;
    }
    return super.onOptionsItemSelected(item);
}