Android中的菜单是用户界面中最常见的元素,使用也很频繁,在Android中,菜单被分为3种,分别为选项菜单(OptionsMenu)、上下文菜单(ContextMenu)、子菜单(SubMenu)。本文先讲选项菜单(OptionsMenu)的使用。

Android手机上有个Menu按键,当Menu按下的时候,每个Activity都可以选择处理这一请求,在屏幕底部弹出一个菜单,这个菜单我们就叫做选项菜单(OptionsMenu),一般情况下,选项菜单最多能显示2排3个菜单选项。这些菜单项中可以设定图标,文字。菜单项如果多于6项,从第6项开始出现一个More选项,点击More才出现第六项以及以后的菜单项,这些菜单项也被称作Expanded Menus。

我们先浏览下效果图(如下):

我们要在Activity中除了覆盖 onCreate(Bundle savedInstanceState);方法外,也要覆盖onCreateOptionsMenu(Menu menu)和onOptionsItemSelected(MenuItem item)方法。代码如下:

package com.andy.test; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class TestActivity extends Activity { //定义Menu菜单选项的ItemId final static int ONE = Menu.FIRST; final static int TWO = Menu.FIRST+1; final static int THREE = Menu.FIRST+2; final static int FOUR = Menu.FIRST+3; final static int FIVE = Menu.FIRST+4; final static int SIX = Menu.FIRST+5; final static int SEVEN = Menu.FIRST+6; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } //创建Menu菜单 public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, ONE, 0, "第一").setIcon(R.drawable.icon); //设置文字与图标 menu.add(0, TWO, 0, "第二"); menu.add(0, THREE, 0, "第三"); menu.add(0, FOUR, 0, "第四"); menu.add(0, FIVE, 0, "第五"); menu.add(0, SIX, 0, "第六"); menu.add(0, SEVEN, 0, "第七"); return super.onCreateOptionsMenu(menu); } //点击Menu菜单选项响应事件 public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()){ case 1: Toast.makeText(this, "你点击了第一", Toast.LENGTH_SHORT).show(); break; case 2: Toast.makeText(this, "你点击了第二", Toast.LENGTH_SHORT).show(); break; } return super.onOptionsItemSelected(item); } //选项菜单被关闭事件,菜单被关闭有三种情形,menu按钮被再次点击、 //back按钮被点击或者用户选择了某一个菜单项 public void onOptionsMenuClosed(Menu menu) { Toast.makeText(this, "你关闭了选项菜单", Toast.LENGTH_SHORT).show(); } //菜单被显示之前的事件 public boolean onPrepareOptionsMenu(Menu menu) { Toast.makeText(this, "选项菜单显示之前onPrepareOptionsMenu方法会被调用",Toast.LENGTH_LONG).show(); //如果返回false,此方法就把用户点击menu的动作给消费了, //onCreateOptionsMenu方法将不会被调用 return true; } }

注:如果我们想通过另外一种方式来实现和点击Menu键一样的功能,例如:点击Menu键时会弹出和隐藏选项菜单,如果我想通过点击某一个Button按钮来实现同样的功能呢?即通过调用系统的 openOptionsMenu(); 方法就OK了。

Android中的Menu功能菜单-OptionsMenu[选项菜单]相关推荐

  1. android菜单点击功能怎么做的,单击android中的Menu按钮打开上下文菜单

    Are you sure you want to open context Menu on Click of Menu button? 因为,上下文菜单适用于特定视图, 上下文菜单提供影响UI中特定项 ...

  2. Android菜单详解——理解android中的Menu

    前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...

  3. android 自定义menu 背景颜色,Android中设置Menu菜单的文字颜色为白色

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 开发者交流裙: 188168040 Android中设置Menu菜单的文字颜色为白色,一般情况下,Android中Menu菜单的title文字颜色为黑色, ...

  4. Android中对menu、home、back键的监听

    Android中对menu.home.back键的监听,通过KeyEvent中的常量值来判断用户点击了哪个按钮. 其中对home键的监听需先在manifest文件中添加 <uses-permis ...

  5. Android菜单详解(一)——理解android中的Menu

    2019独角兽企业重金招聘Python工程师标准>>> 菜单是许多应用程序不可或缺的一部分,Android中更是如此,所有搭载Android系统的手机甚至都要有一个"Men ...

  6. android菜单的类型有几种,Android中的Menu(菜单)的三种类型菜单的学习

    今天学习一下菜单组件,在Android中的菜单中有三种①:OptionMenu(选项菜单)②:ContextMenu(上下文菜单) ③:SubMenu(子菜单) 下面分别来学一下 一:OptionMe ...

  7. Android中的Menu

    文章目录 1 Menu介绍 1.1 Menu的发展 1.2 菜单的分类 2 选项菜单(OptionMenu) 2.1 选项菜单的xml文件及java文件 3 上下文菜单(ContextMenu) 3. ...

  8. Android中的Menu和对话框形式的Activity

    写这篇文章的主要目的是介绍对话框形式的Activity,其中也涉及到一些Menu的设计问题,当触发某一事件,出现一个对话框形式的Activity之后,前一个Activity失去焦点,同时,前一个Act ...

  9. android选项菜单源代码,Android应用程序----UI界面控件(菜单menu)

    菜单是应用程序中非常重要的组成部分,能够在不占用界面空间的前提下,为应用程序提供了统一的功能和设置界面,并为程序开发人员提供了易于使用的编程接口 Android系统支持三种菜单 选项菜单(Option ...

最新文章

  1. R语言使用zoo包中的rollapply函数计算两个时间序列数据列之间的滚动相关性(Rolling correlations)、例如,计算两种商品销售额之间的3个月的滚动相关性
  2. 收藏 | 常见的神经网络求导总结!
  3. Spring bean三种创建方式
  4. Java笔记-jpa中数据存储及更新应该注意的问题
  5. 被指涉嫌“二选一” 山姆回应:欢迎良性竞争
  6. Delphi 开发 ERP [1] 准备
  7. 神舟战神怎么装win11系统
  8. HTC公布多款Android新机系统内核源代码
  9. jmx 监控java程序_监控Java Web应用程序 – JMX是正确的选择吗?
  10. 查看sql语句执行时间/测试sql语句性能
  11. 求助!ENDnoteX8+Word2016可关联,但总提示【该文档有宏】等bug
  12. 数据库索引的作用以及索引基本原理
  13. B站还有多久成为天涯
  14. 谈一下MVVM 框架
  15. mysql主键和唯一索引_主键和唯一索引的区别
  16. Windows10教育版升级至专业版的方法
  17. 天蝎项目整机柜服务器技术规范,天蝎整机柜服务器技术规范25.doc
  18. 京东云php环境配置,干货 | 京东云应用负载均衡(ALB)多功能实操
  19. VM虚拟机安装CentOS系统的常见BUG
  20. 研究人员在西部数据存储设备上发现硬编码后门

热门文章

  1. Ubuntu更新-换源问题
  2. 【等保】等保测评中双因素认证是什么意思?等于双因子认证吗?
  3. 【微服务实战】什么是微服务,微服务怎么实施?
  4. .msg转换成html,msg文件怎么打开
  5. 这三种人不适合“裸辞”!
  6. 深度学习基础篇【5】从0开始搭建YOLOV5 并进行测试
  7. 【尚硅谷Java笔记+踩坑】Git(分布式版本控制工具)
  8. opencv--颜色识别
  9. SSCNet环境搭建
  10. Android集成FireBase