Android中的Menu

1 Menu介绍

1.1 Menu的发展

3.0以前的Menu:

  • 在Android3.0,当用户按“菜单”按钮时,选项菜单的内容会出现在屏幕底部,可包含多达 6 个菜单项,超出部分则以“更多”来显示。

在这里插入图片描述

3.0以后的Menu:

  • 在Android3.0及更高版本的系统中,选项菜单中的项目将出现在操作栏中,用户通过操作栏右侧的操作或者点击设备菜单按钮来溢出菜单图标。

在这里插入图片描述

1.2 菜单的分类

Menu分类

  • 选项菜单(OptionMenu)
  • 上下文菜单(ContextMenu)
  • 弹出菜单(PopupMenu)

2 选项菜单(OptionMenu)

选项菜单是一个应用的主菜单项,用于放置对应用产生全局影响的操作,如搜索/设置。

在这里插入图片描述

2.1 选项菜单的xml文件及java文件

选项菜单我们需要创建在res目录下,如下图所示:
在这里插入图片描述
xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <!--showAsAction属性值:always :直接在标题栏显示
    never:不显示
    withText:控制图标和文本一起显示
    ifRoom:有空间就显示-->
    <item android:title="保存"
        android:id="@+id/save"
        android:icon="@mipmap/ic_launcher"
        app:showAsAction="always"/>
    <item android:title="设置"
        android:id="@+id/setting"/>
    <item android:title="更多操作" >
        <menu >
            <item android:title="退出"
                android:id="@+id/exit"/>
            <item android:title="子菜单2" />
            <item android:title="子菜单3" />
        </menu>
    </item>

</menu>

对应的java文件如下:

package com.example.para_huang.imoocapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.ActionMode;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.widget.Button;
import android.widget.PopupMenu;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
   
   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    //创建OptionMenu
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
   
   
        //加载菜单资源
        //通过XML资源来设计menu
        //getMenuInflater().inflate(R.menu.option,menu);

        //纯java代码设计menu
        /*
        设置
        更多
                添加
                删除
         */
//        Menu
        //参数1:组id     参数2:菜单项id    参数3:序号   参数4:设置
        menu.add(1, 1, 1,"设置");
        SubMenu sub = menu.addSubMenu(1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值