Android开发之菜单(menu)用法实例分析

发布时间 - 2026-01-11 00:09:35    点击率:

本文实例讲述了Android开发之菜单(menu)用法。分享给大家供大家参考,具体如下:

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中声明。

PS:关于AndroidManifest.xml文件相关属性功能可参考本站在线工具:

Android Manifest功能与权限描述大全:
http://tools./table/AndroidManifest

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。


# Android  # 菜单  # menu  # 用法  # Android动态添加menu菜单的简单方法  # 用Android MenuInflater创建菜单项的方法步骤  # Android创建Menu菜单实例  # 详解Android中的Menu菜单键  # Android开源组件SlidingMenu侧滑菜单使用介绍  # Android仿微信菜单(Menu)(使用C#和Java分别实现)  # 在Android中创建菜单项Menu以及获取手机分辨率的解决方法  # Android开发之menu菜单  # 学习理解Android菜单Menu操作  # Android使用onCreateOptionsMenu()创建菜单Menu的方法详解  # Android UI实现SlidingMenu侧滑菜单效果  # Android动态修改ToolBar的Menu菜单示例  # Android学习教程之圆形Menu菜单制作方法(1)  # 新建一个  # 进阶  # 都有  # 相关内容  # 两种  # 感兴趣  # 给大家  # 跳转  # 有两种  # 更多关于  # 解决方法  # 别有  # 所述  # 程序设计  # 不要忘记  # 本例  # 有两个  # 讲述了  # title  # id 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: IOS倒计时设置UIButton标题title的抖动问题  Mybatis 中的insertOrUpdate操作  Python制作简易注册登录系统  如何在 Pandas 中基于一列条件计算另一列的分组均值  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  zabbix利用python脚本发送报警邮件的方法  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  php结合redis实现高并发下的抢购、秒杀功能的实例  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  Laravel如何实现模型的全局作用域?(Global Scope示例)  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  C#如何调用原生C++ COM对象详解  Python并发异常传播_错误处理解析【教程】  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  实例解析Array和String方法  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel如何处理文件下载请求?(Response示例)  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  使用C语言编写圣诞表白程序  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  高端建站如何打造兼具美学与转化的品牌官网?  详解Android图表 MPAndroidChart折线图  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  网站制作企业,网站的banner和导航栏是指什么?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  如何在腾讯云服务器上快速搭建个人网站?  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  简单实现Android验证码  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  Laravel如何生成API文档?(Swagger/OpenAPI教程)  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  如何在阿里云ECS服务器部署织梦CMS网站?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何撰写建站申请书?关键要点有哪些?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  如何在云指建站中生成FTP站点?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)