ActionBar中Menu使用

Android  代码片段  2024年7月11日 pm2:26发布4个月前更新 91es.com站长
119 0 0

前言

简单记录一下标题栏中Menu的使用。

流水文,之前没记录,这次有空重新简单记录一下。

正文

在Android Studio中新创建一个Module。在res目录创建menu,然后创建一个menu.xml

/res/menu/menu.xml

menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/app_menu_1"
        android:title="@string/app_menu_1"
        android:icon="@mipmap/ic_launcher"
        app:showAsAction="always" />
    <item
        android:id="@+id/app_menu_2"
        android:title="@string/app_menu_2"
        android:icon="@mipmap/ic_launcher"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/app_menu_3"
        android:title="@string/app_menu_3"
        android:icon="@mipmap/ic_launcher"
        app:showAsAction="never" />
</menu>

这里app:showAsAction需要介绍一下,有三个参数:

  1. ifRoom 在屏幕空间足够时显示在Toolbar中,否则显示在菜单。

  2. never 永远不显示在Toolbar中,而是一直显示在菜单中。

  3. always 永远显示在Toolbar中,如果屏幕空间不够则不显示。

Toolbar中的action按钮只会显示图标,菜单中的action按钮只会显示文字。如果menu显示在Toolbar中,如果有图标,就只显示图标。

MainActivity.java

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

@SuppressLint("NonConstantResourceId")
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    switch (item.getItemId()) {
        case R.id.app_menu_1:
            Toast.makeText(this, getText(R.string.app_menu_1), Toast.LENGTH_SHORT).show();
            return true;
        case R.id.app_menu_2:
            Toast.makeText(this, getText(R.string.app_menu_2), Toast.LENGTH_SHORT).show();
            return true;
        case R.id.app_menu_3:
            Toast.makeText(this, getText(R.string.app_menu_3), Toast.LENGTH_SHORT).show();
            return true;
    }
    return super.onOptionsItemSelected(item);
}

经过上面两部,菜单(menu)就差不多显示了。

参考文章

 历史上的今天

  1. 2023: 《阿里Android手册》笔记(0条评论)
  2. 2021: 骆一禾:月 亮(0条评论)
  3. 2019: Log工具类(0条评论)
  4. 2019: 毕淑敏:提醒幸福(0条评论)
  5. 2019: 席慕容:时间(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

《MySQL基础教程》笔记3

前言本章主要学习对表的创建,插入,删除等操作命名。最近有空,看了《MySQL基础教程-西泽梦路》,简单的做一下笔记。记录于此,方便自己回忆。MySQL中对大小写没有区分,我这里习惯性用小些。正文我这以Window版的phpstudy软件验证。需要进入这个目录,才可以使用mysql命...

android13添加SELinux权限时踩的坑

前言在配置Android 13 SELinux权限时出现如下坑,记录一下,方便自己查阅。正文坑一:ERROR: end of file in comment编译时提示service.te有如下错误prebuilts/build-tools/linux-x86/bin/m4:device/...

Android磁盘之U盘挂载

前言之前介绍Vold的启动,没有涉及U盘的挂载,今天在之前的基础上进行插入U盘时流程的分析。Android P这里很多都是网上的,我就走走流程。正文VolumeManager.cpphandleBlockEvent()void VolumeManager::handleBlock...

龙应台:中国人,你为什么不生气?

在昨晚的电视新闻中,有人微笑着说:"你把检验不合格的厂商都揭露了,叫这些生意人怎么吃饭?"我觉得恶心,觉得愤怒。但我生气的对象不是这位人士,而是台湾1800万的懦弱自私的中国人。我所不能了解的是:中国人,你为什么不生气?包德莆的《苦海余生》英文原本中有一段他在台湾的经验:他看见一辆车子把小孩子...

Android MediaButton监听再次记录

前言再次记录一下Android 中MediaButton的注册,注销代码片段,以及遇到的问题,记录于此,方便自己查阅和回顾。正文一般会出现监听了,但是没收到。下面记录一下自己处理的方式。隐藏内容!付费阅读后才能查看!¥4 ¥5多个隐藏块只需支付一次付费阅读参考文章老文章了,但还是这里重...

Android分析Monkey日志

推荐使用我的个人导航大全:编程导航 、IT导航、极客导航、读书导航Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 。 下面我们就来说说如何处理log文件 。什么时候会有Log文件的产生 ?Log的产生大家都...