Android中OptionMenu的使用总结

本文详细介绍了Android中OptionMenu的使用,包括基本操作、动态管理、创建多级菜单及继承父类菜单的方法。OptionMenu的加载涉及创建资源文件、重写加载菜单和处理点击事件的回调。此外,还讲解了如何在Activity和Fragment中动态添加、移除、禁用和修改菜单,以及如何创建多级菜单和继承父类菜单以实现代码复用。
摘要由CSDN通过智能技术生成

OptionMenu基本使用

下图是一个基本的OptionMenu,基本使用是三个步骤:创建资源文件、重写onCreateOptionsMenu加载菜单、重写onOptionsItemSelected处理点击事件。

Step1:创建资源文件

上图图中的三个点是其他隐藏的菜单,以下我们成为折叠菜单

这里简单说一下showAsAction,它包含但不仅有以下几种:

1、always

表示无论标题栏是否有地方,都显示在最上方,而不显示在折叠菜单中。

2、never

永远显示在折叠菜单中。

3、ifRoom

如果标题栏有地方就显示在标题栏,否则显示在折叠菜单中。

<?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
        android:id="@+id/btnAdd"
        android:icon="@mipmap/add"
        android:title="Add"
        app:showAsAction="always"></item>
    <item
        android:id="@+id/btnEdit"
        android:icon="@mipmap/edit"
        android:title="Edit"
        app:showAsAction="always"></item>
    <item android:title="OptionMenu1"></item>
    <item android:title="OptionMenu2"></item>
    <item android:title="OptionMenu3"></item>
</menu>

OptionMenu可同时在Activity和Fragment中加载,以下将演示两种方式。

在Activity中加载OptionMenu

Step2:重写onCreateOptionsMenu加载菜单

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

重写后要返回true,否则菜单不会显示,通过下图在Activity中的onCreateOptionsMenu注释就可以知道。

译为:为了显示这个menu,你必须返回true,如果你返回false这个menu将不会被显示出来。

Step3:重写onOptionsItemSelected处理点击事件

参数传来的就是我们点中的MenuItem对象,从中可以拿到Titile、Id等。如果这里不想将事件交给下一级处理直接返回true即可(这里主要是在Fragment也加载了OptionMenu的情况下,在下边展开来说)。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
   
    Toast.makeText(this,  item.getTitle(), Toast.LENGTH_SHORT).show();
    return true
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值