关于Menu的简单使用,大致概括为Menu的创建,和Item的监听事件。

目录

1.Item的创建

菜单的响应事件

1.Item的创建

首先我们打开Android Studio新建一个项目。

选择一个Empty Activity,完成点击next。

输入项目名点击Finish。

切换为项目工程

点击ok,再鼠标右击,新建一个Resource File 点击ok

创建完成之后我们打开刚刚新建的 main 去写item标签。

这里我们创建两个 item 标签,先不管其内容。

这个时候你点击运行模拟器,但是你会发现在 Test 这个活动中并没有出现图中所示的菜单栏。当然这上面只是教你如何创建,想要在活动中显示出来,需要回到 MainActivity 里面重写 onCreateOptionsMenu() 方法, 重写方法可以使用 Ctrl + o 快捷键(Mac 系统是 control+ o)如下图

在onCreateOptionsMenu()中输入以下代码

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

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

这个时候再点击运行在 Mian 活动界面就会出现菜单栏

菜单的响应事件

这个时候我们先再建一个活动

为了区分这两个活动,给这两个活动加上 TextView 。

下面定义菜单的响应事件。在 MainActivity 中重写 onOptionsItemSelected() 方法

public boolean onOptionsItemSelected(MenuItem item){Intent intent = null;switch (item.getItemId()){case R.id.First_item:Toast.makeText(this,"You clicked first item",Toast.LENGTH_SHORT).show();break;case R.id.Sce_item:intent = new Intent(MainActivity.this, FirstActivity.class);Toast.makeText(this,"You clicked second item",Toast.LENGTH_SHORT).show();break;default:}startActivity(intent);return true;}

这个时候我们在点击运行模拟器,貌似第一个 item 出了一点小问题,我们点击第二个按钮,我们就会到 First 活动里面了 。

当然,你要是想在 First 活动中添加菜单,你需要把对应的代码加入到 FirstActivity 里面。

最后我们来解决那个第一个 item 点击出现闪退的问题,先放下对应的代码图片。

可以看到,在 switch case 里面我们有两个语句,这两个语句,只有一个用到了  intent  语句,但是在 switch case 执行之后,我们都执行了 startActivity(intent) ,但是对于第一种情况,当你给First_item 的响应时间并没有涉及到 intent 。所以代码改成以下代码。

public boolean onOptionsItemSelected(MenuItem item){Intent intent = null;boolean flag = true;switch (item.getItemId()){case R.id.First_item:Toast.makeText(this,"You clicked first item",Toast.LENGTH_SHORT).show();flag = false;break;case R.id.Sce_item:intent = new Intent(MainActivity.this, FirstActivity.class);Toast.makeText(this,"You clicked second item",Toast.LENGTH_SHORT).show();break;default:}if(flag){startActivity(intent);flag = false;}return true;}

这个时候,我们再点击运行。结果如下:

文章部分来自 《第一行代码》 第  2 版   郭 霖   著 本文只是将在写app时遇到的一点小问题,同书上的内容结合以下,想要学习 Andriod 开发这里极力推荐《一行代码》。由于本人目前是一名大二的蒟蒻学生,所以如有出错或不当请多多包涵,多多指教。

Android Studio Menu item 的简单使用相关推荐

  1. Android Studio学习记录之简单的页面切换及宫格菜单

    Android Studio学习记录之简单的页面切换及宫格菜单 之前上课听老师讲的一些东西自己其实并没有消化,今天把不懂的都去网上搜了一下,有了一种恍然大悟的感觉,包括很多方方面面的东西.有些东西听说 ...

  2. (超多图)基于Android studio开发的一个简单入门小应用(超级详细!!)(建议收藏)

    基于Android studio开发的一个简单入门小应用 一.前言 二.前期准备 三.开发一个小应用 五.运行应用 一.前言 在暑假期间,我学习JAVA基础,为了能早日实现自己用代码写出一个app的& ...

  3. 用Android Studio设计的一个简单的闹钟APP

    该闹钟是用Android Studio为安卓手机设计的一个简单的闹钟APP 一.介绍系统的设计界面 闹钟的布局文件代码如下 <?xml version="1.0" encod ...

  4. 在 Android Studio 中创建一个简单的 QQ 登录界面

    一,创建一个新的 Android Studio 项目 打开 Android Studio,选择 "Start a new Android Studio project",然后填写应 ...

  5. android studio开发整合资源简单实现android扫一扫功能

    开发安卓app过程中需要集成扫码功能,搜索的时候发现了 http://blog.csdn.net/yuzhiqiang_1993/article/details/52805057 这篇博客文章,写的很 ...

  6. Android Studio 画笔功能绘制简单图形

    一 设置页面布局 设置activity_main.xml为帧布局便于画图时直接使用位置进行绘制 二 新建java类用于编写绘图代码 在mainactivity目录下新建myview类 三 继承原有vi ...

  7. Android studio利用MPAndroidChart制作简单柱形图

    1.在项目的build.gradle的allprojects添加 maven { url "https://jitpack.io" } allprojects {repositor ...

  8. android studio 去掉标题栏的简单方法

    就这一句话就行,试试看.

  9. Google发布Android Studio 1.0

     第一个IDE稳定版本:Google发布Android Studio 1.0 摘要:Google于今天发布了Android Studio 1.0,其新增的突出特性包括:首次安装向导方面.示例导入和 ...

  10. arcore_如何使用ARCore和Android Studio构建增强现实Android应用

    arcore by Ayusch Jain 通过Ayusch Jain 如何使用ARCore和Android Studio构建增强现实Android应用 (How to build an Augmen ...

最新文章

  1. 2022-2028年中国美瞳行业应用市场需求及开拓机会研究报告
  2. 感知哈希算法(perceptual hash algorithm),
  3. android学习笔记之ImageView的scaleType属性
  4. koa 接口返回数据_koa-api
  5. 浮点数运算的精度问题:以js语言为例
  6. mysql 笔试题_MySQL笔试题详解(一)(中等难度)
  7. 面向切面编程AOP的最佳入门示例
  8. mfc如何将一个数组中的字节数据用串口发送出去_RS232串口多机通信
  9. 阿里在美申请区块链专利;Win10 最新漏洞被发现;MongoDB 4.2 发布​ | 极客头条...
  10. 实现关于跨二级域名和1.1和2.0版.net Forms身份验证体制的问题和解决办法.
  11. html特殊符号的表示
  12. 企业微信好友无上限,私域流量即将迎来春天?
  13. 【内部流出,勿做商用】今日教大家如何抢聚划算
  14. dismiss和remove_rule out与dismiss的区别
  15. 快速上手ndk开发! Mac/Win下配置和使用!(2018.4重编版)
  16. 支付宝小程序 使用uView实现省市区三级联动的后续
  17. 全国职称计算机应用能力考试6,全国职称计算机应用能力考试.doc
  18. 在 Windows Server 2003 企业服务器中如何配置 IPv6 协议
  19. Arcgis实验一 空间数据数字化、投影变换与仿射变换
  20. 市面上微型计算机的主频,目前市面上最大屏幕的手机,你知道是哪款吗?

热门文章

  1. 为啥要看javac源代码
  2. Flixel Dame Tank学习一:半成品坦克大战
  3. 下面哪个不是python合法的变量名_下面哪个不是Python合法的标识符
  4. 手机拍照就能实现的免费文档扫描,告别打印店扫描和付费软件
  5. 【2014年计划】IT之路
  6. python项目源码和注解_python源代码和注释 - 随笔分类 - 秦朗的天空 - 博客园
  7. layer mobile使用方法
  8. 手把手:用OpenCV亲手给小扎、Musk等科技大佬们做一张“平均脸”(附Python代码)
  9. 5角星画法 android,Android Canvas绘制正多边形和正多角星
  10. 基于STM32的卧室智慧监测系统