Android开发——菜单(Menu)-——选项菜单(OptionMenu)

Menu,在Android3.0以前的menu显示,是用户点击手机下方操作按钮的菜单按钮时,会从界面底部向上弹出菜单,菜单内容出现在屏幕底部,可以包含六个及以上的菜单项,超出的部分则以“更多”来显示。

在Android3.0以后的更高版本的系统中,菜单中的项目会出现在操作栏当众,用户通过使用顶部操作栏右侧的图标/提示字,或者按设备的菜单键显示出操作溢出菜单。(3.0以后的菜单栏如下图所示)

Menu分类:选项菜单(OptionMenu)、上下文菜单(ContextMenu)、弹出菜单(PopupMenu)

选项菜单(OptionMenu)

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

1.1新建menu文件夹:res-->New-->Android resource Directory,修改文件夹类型menu

1.2新建menu文件option.xml,menu-->New-->Menu Resource File

 

 1.3 optionn.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">
<!--  item中的属性:showAsAction:always固定在操作栏上直接显示;  -->
<!--  icon可以直接显示指定图标,不显示文本,如果不使用showAsAction="always",则只会显示文本  -->
<!--  在图标文本同时存在的情况下,如果想要又显示文本又显示icon,使用showAsAction="always|withText"  -->
    <item android:title="保存"
        android:id="@+id/save"
        android:icon="@drawable/ic_save"
        app:showAsAction="always"/>
    <item android:title="设置"
        android:id="@+id/setting"/>
    <item android:title="更多操作" >
        <menu >
            <item android:title="退出"
                android:id="@+id/exit"/>
            <item android:title="操作1" />
            <item android:title="操作2" />
        </menu>
    </item>
</menu>

 1.4 创建OptionMenu,实现点击按钮触发事件

package com.example.menuactivity;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
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);
    }

    //创建OptionMenu
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //通过该方法getMenuInflater(),可以将我们之前设置的option.xml文件设置为我们的菜单文件
        //参数1:传menu资源索引;参数2:我们的菜单对象
        //加载菜单资源
        getMenuInflater().inflate(R.menu.option,menu);
        return true;
    }

    //OptionMenu菜单项选中的触发方法
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        //获取菜单项对应的Id
        switch (item.getItemId()) {
            case R.id.save:
                Toast.makeText(this,"保存",Toast.LENGTH_SHORT).show();
                break;
            case R.id.setting:
                Toast.makeText(this,"设置",Toast.LENGTH_SHORT).show();
                break;
            case R.id.exit:
                finish();
                break;
        }
        return super.onOptionsItemSelected(item);
    }
}

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值