【android开发-02】android中OptionMenu用法介绍

2023-12-01 20:15

本文主要是介绍【android开发-02】android中OptionMenu用法介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Option Menu 是 Android 中一种常用的菜单方式,它通常用于在屏幕的顶部显示一个下拉菜单,提供一些常用的功能或操作选项。菜单里的菜单项默认不会显示出来,需要点击右上角三个点的菜单按钮。以下是一些使用 Option Menu 的基本步骤:

1,在你的 Activity 中,重写 onCreateOptionsMenu(Menu menu) 方法。在这个方法中,你可以创建和配置你的 Option Menu。

@Override  
public boolean onCreateOptionsMenu(Menu menu) {  // 创建一个 Option Menu  MenuInflater inflater = getMenuInflater();  inflater.inflate(R.menu.option_menu, menu);  return true;  
}

通过getMenuInflater方法能够得到MenuInflater 对象,再调用inflate方法就可以给当前activity创建菜单。inflate方法接收2个参数,第一个参数用于指定通过那个一个资源文件来创建菜单,第二个参数用于指定我们的菜单项将添加到哪一个Menu对象中,这里直接使用onCreateOptionsMenu方法中传入的menu参数。然后这个方法返回true,表示允许菜单显示出来,返回false,创建的菜单将无法显示。

2,在你的 Activity 中,重写 onOptionsItemSelected(MenuItem item) 方法。在这个方法中,你可以处理用户点击 Option Menu 中的菜单项的事件。

@Override  
public boolean onOptionsItemSelected(MenuItem item) {  switch (item.getItemId()) {  case R.id.menu_item_1:  // 处理菜单项 1 的点击事件  Toast.makeText(MainActivity.this, "处理菜单项 1 的点击事件", Toast.LENGTH_SHORT).show();break;  case R.id.menu_item_2:  // 处理菜单项 2 的点击事件  Toast.makeText(MainActivity.this, "处理菜单项 2 的点击事件", Toast.LENGTH_SHORT).show();break;  // ... 其他菜单项的处理  }  return true;  
}

通过调用item.getItemId()来判断我们点击的是哪一个菜单项,然后给每一个菜单项加入自己的处理逻辑。

这里我们活学活用,弹出我们前面学的Toast

3,在你的资源文件(res/menu)中,创建一个名为 option_menu.xml 的菜单布局文件。在这个文件中,你可以定义你的 Option Menu 中各个菜单项的显示文本、图标等属性。例如:

<menu xmlns:android="http://schemas.android.com/apk/res/android">  <item android:id="@+id/menu_item_1" android:title="菜单项 1" />  <item android:id="@+id/menu_item_2" android:title="菜单项 2" />  <!-- ... 其他菜单项 -->  
</menu>

这里创建了2个菜单项,其中item 标签就是用来创建具体的某一个菜单项,然后通过android:id给菜单项指定一个唯一标识符,android:title给菜单项指定一个名称。

4,在你的 Activity 中,使用 setMenuVisibility(true) 方法来显示 Option Menu。例如:

@Override  
protected void onResume() {  super.onResume();  // 设置 Option Menu 的可见性为 true,使其在屏幕上显示出来  invalidateOptionsMenu();  
}

这篇关于【android开发-02】android中OptionMenu用法介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/442557

相关文章

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

Mysql中isnull,ifnull,nullif的用法及语义详解

《Mysql中isnull,ifnull,nullif的用法及语义详解》MySQL中ISNULL判断表达式是否为NULL,IFNULL替换NULL值为指定值,NULLIF在表达式相等时返回NULL,用... 目录mysql中isnull,ifnull,nullif的用法1. ISNULL(expr) → 判