Android - Option Menu

Android - Option Menu 首页 / Android入门教程 / Android - Option Menu

Android Option Menus 是android的主要菜单。它们可用于设置(settings),搜索(search),删除(delete)项目等。

在这里,无涯教程将看到两个选项菜单示例。首先是简单的选项菜单,其次是带有图像的选项菜单。

无涯教程通过调用MenuInflater类的inflate()方法来使菜单膨胀。要对菜单项执行事件处理,您需要重写Activity类的onOptionsItemSelected()方法。

选项菜单示例

让无涯教程看看如何在android中创建菜单。让无涯教程看一下包含三个菜单项的简单选项菜单示例。

链接:https://www.learnfk.comhttps://www.learnfk.com/android/android-option-menu-example.html

来源:LearnFk无涯教程网

无涯教程在此文件中只有一个TextView。

无涯教程网

File: activity_main.xml
<!--?xml version="1.0" encoding="utf-8"?-->
<android.support.design.widget.coordinatorlayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="example.learnfk.com.optionmenu.MainActivity">
    <android.support.design.widget.appbarlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay">
        <android.support.v7.widget.toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popuptheme="@style/AppTheme.PopupOverlay"></android.support.v7.widget.toolbar>
    </android.support.design.widget.appbarlayout>
    <include layout="@layout/content_main"></include>
</android.support.design.widget.coordinatorlayout>
File: context_main.xml
<!--?xml version="1.0" encoding="utf-8"?-->
<android.support.constraint.constraintlayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="example.learnfk.com.optionmenu.MainActivity" tools:showin="@layout/activity_main">
    <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintbottom_tobottomof="parent" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_torightof="parent" app:layout_constrainttop_totopof="parent"></textview>
</android.support.constraint.constraintlayout>

它包含三个项目,如下所示。它是在res/menu目录中自动创建的。

File: menu_main.xml
<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" tools:context="example.learnfk.com.optionmenu.MainActivity">
    <item android:id="@+id/item1" android:title="Item 1"></item>
    <item android:id="@+id/item2" android:title="Item 2"></item>
    <item android:id="@+id/item3" android:title="Item 3" app:showasaction="withText"></item>
</menu>

此类显示Menu.xml文件的内容,并在单击菜单项时执行事件处理。

File: MainActivity.java
package example.learnfk.com.optionmenu;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
       //Inflate the menu; 如果存在,这会将项目添加到操作栏。
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
       int id = item.getItemId();
        switch (id){
            case R.id.item1:
                Toast.makeText(getApplicationContext(),"Item 1 Selected",Toast.LENGTH_LONG).show();
                return true;
            case R.id.item2:
                Toast.makeText(getApplicationContext(),"Item 2 Selected",Toast.LENGTH_LONG).show();
                return true;
            case R.id.item3:
                Toast.makeText(getApplicationContext(),"Item 3 Selected",Toast.LENGTH_LONG).show();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
}

输出无需单击菜单按钮。

android option menu example 1

单击菜单按钮后输出。

android option menu example 2

单击第二个菜单项后输出。

android option menu example 3

选项菜单与图标

您需要在res/drawable目录中具有图标图像。 android:icon元素用于在选项菜单上显示图标。您可以在strings.xml文件中写入字符串信息。但是无涯教程已经将它写在menu_main.xml文件中。

File: menu_main.xml
<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" tools:context="example.learnfk.com.optionmenu.MainActivity">
    <item android:id="@+id/item1" android:title="Item 1" app:showasaction="always" android:icon="@android:drawable/btn_star"></item>
    <item android:id="@+id/item2" android:title="Item 2" app:showasaction="ifRoom" android:icon="@android:drawable/btn_plus"></item>
    <item android:id="@+id/item3" android:title="Item 3" app:showasaction="withText" android:icon="@android:drawable/btn_plus"></item>
</menu>
android option menu example 4android option menu example 5

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入拆解Java虚拟机 -〔郑雨迪〕

Java业务开发常见错误100例 -〔朱晔〕

编译原理实战课 -〔宫文学〕

张汉东的Rust实战课 -〔张汉东〕

人人都用得上的写作课 -〔涵柏〕

打造爆款短视频 -〔周维〕

搞定音频技术 -〔冯建元 〕

Spring Cloud 微服务项目实战 -〔姚秋辰(姚半仙)〕

B端产品经理入门课 -〔董小圣〕

好记忆不如烂笔头。留下您的足迹吧 :)