Android手机专门用一个按键“menu“来显示菜单。

要实现菜单功能,首先要通过方法onCreateOptionMenu来创建菜单,创建方法有两种:一种是直接导入有menu的xml文件,一种是用类Menu的方法直接添加。创建好菜单后,用事件监听器onOptionItemSelected对能够触发的事件进行监听。

下面这个例子有两个Activity,分别有上面的两种方法实现menu,每个menu里都有事件监听器进行Activity跳转和退出。

1.资源文件下的menu文件res/menu/menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/about" android:title="关于" /> <item android:id="@+id/exit" android:title="退出" /> </menu>

Activity01.java

package com.yarin.android.Examples_04_13; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; public class Activity01 extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } /*创建menu*/ public boolean onCreateOptionsMenu(Menu menu) { //MenuInflater class is used to instantiate menu XML files into Menu objects MenuInflater inflater = getMenuInflater(); //设置menu界面为res/menu/menu.xml inflater.inflate(R.menu.menu, menu); return true; } /*处理菜单事件*/ public boolean onOptionsItemSelected(MenuItem item) { //得到当前选中的MenuItem的ID, int item_id = item.getItemId(); switch (item_id) { case R.id.about: /* 新建一个Intent对象 */ Intent intent = new Intent(); /* 指定intent要启动的类 */ intent.setClass(Activity01.this, Activity02.class); /* 启动一个新的Activity */ startActivity(intent); /* 关闭当前的Activity */ Activity01.this.finish(); break; case R.id.exit: Activity01.this.finish(); break; } return true; } }

Activity02.java

package com.yarin.android.Examples_04_13; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class Activity02 extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 设置显示main2.xml布局 */ setContentView(R.layout.main2); } /*创建menu*/ public boolean onCreateOptionsMenu(Menu menu) { //为menu添加内容 menu.add(0, 0, 0, R.string.ok); menu.add(0, 1, 1, R.string.back); return true; } /*处理menu的事件*/ public boolean onOptionsItemSelected(MenuItem item) { //得到当前选中的MenuItem的ID, int item_id = item.getItemId(); switch (item_id) { case 0: case 1: /* 新建一个Intent对象 */ Intent intent = new Intent(); /* 指定intent要启动的类 */ intent.setClass(Activity02.this, Activity01.class); /* 启动一个新的Activity */ startActivity(intent); /* 关闭当前的Activity */ Activity02.this.finish(); break; } return true; } }

本例用到了两个Activity,不要忘记在AndroidManifest.xml中声明。

android菜单(menu)用法相关推荐

  1. Android菜单—Menu

    菜单是常用的用户界面元素,在Android系统里提供了3种类型的菜单. (1)选项菜单(options menu):按设备上Menu 键显示的菜单. (2)上下文菜单(context menu):长按 ...

  2. Android的菜单栏Menu用法详解(超详细)

    菜单栏Menu用法讲解 菜单是Android应用中非常重要且常见的组成部分.能够极大的节省我们页面的使用空间,提高页面的利用率. 安卓常用的菜单有三种: OptionMenu:选项菜单,android ...

  3. android用户界面之菜单(Menu)教程实例汇总

    一.Menu的基本介绍 1.从头学Android之Menu选项菜单  http://www.apkbus.com/android-13930-1-1.html  2.Android 界面之Menu菜单 ...

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

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

  5. 系出名门Android(2) - 布局(Layout)和菜单(Menu)

    2019独角兽企业重金招聘Python工程师标准>>> 系出名门Android(2) - 布局(Layout)和菜单(Menu) 作者:webabcd 介绍 在 Android 中各 ...

  6. android 自定义menu背景,Android编程实现自定义系统菜单背景的方法

    本文实例讲述了Android编程实现自定义系统菜单背景的方法.分享给大家供大家参考,具体如下: 不多说,上图,见代码. package lab.sodino.menutest; import andr ...

  7. android 按钮 菜单,(期末要考啊)Android的menu(菜单)按钮的使用

    (期末要考啊)Android的menu(菜单)按钮的使用 安卓 Android的菜单按钮 使用xml的方式创建菜单项在res下的menu目录下新建一个main.xml文件,以menu为根节点,添加一个 ...

  8. android e图标一会有一会没有反应,android解决菜单Menu添加Icon无效问题,让菜单同时显示图标和文字...

    今天主要解决在Android 4.0 以上的系统中,在java代码中给菜单Menu动态添加Icon无效问题.本人通过尝试网上给出的涉及到菜单的源码类 MenuBuilder通过反射更改mOptiona ...

  9. Android中Menu的基本用法

    转自:http://blog.csdn.net/yuzhongchun/article/details/8956256 一. 使用xml定义Menu 菜单资源文件必须放在res/menu目录中.菜单资 ...

最新文章

  1. 全面理解目标检测中的anchor
  2. 皮一皮:大自然的力量你无法想象...
  3. Bootstrap4+MySQL前后端综合实训-Day07-PM【用户信息管理页面——功能展示(分页显示数据、添加用户、批量删除用户、编辑用户信息)、servlet项目代码整理汇总】
  4. [转]html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
  5. 机器学习(九)——EM算法
  6. 如何销毁一个实例化对象_基于脚本的游戏对象系统(1) 实例化、组件及生命周期...
  7. x86汇编语言(2) 认识8086处理器
  8. Java解析HTML之NekoHTML
  9. Xshell安装宝塔Linux面板教程
  10. InoReader——网页无法打开
  11. 推荐模型-序列推荐-2018:SHAN
  12. Gprs通信协议服务器,GPRS协议简介
  13. 哈尔滨工业大学 计算机系统大作业
  14. [论文阅读笔记12]An Effective Transition-based Model for Discontinuous NER
  15. 谷歌高效开发的秘密:来自谷歌前员工的软件开发工具指南
  16. CCD靶面尺寸对应的宽高和对角线长度
  17. 使用 OpenWhisk 自建 Serverless 服务
  18. 2018年蓝桥杯A组C/C++决赛题解
  19. 视频教程-深度学习与TensorFlow 2入门实战-深度学习
  20. excel表计算机实践操作,Excel电子表格计算机实践任务书.ppt

热门文章

  1. Docker安装Mysql详细教程
  2. VideoReTalking:用于野外会说话的头部视频编辑的基于音频的唇形同步
  3. 6阶子群同构于s3或者z6_浙江省月自考近世代数试卷
  4. linux下gitolite-admin安装和配置
  5. WPS 或execle 使用技巧
  6. spdlog 封装为 DLL
  7. win11 hyper-v完全打开和关闭
  8. ora-01720 授权选项对于xxxx不存在
  9. 阿里云总裁胡晓明:AI泡沫过后,下一站是“产业AI”
  10. 站在风口的猪也会飞,背后推手是谁?