Android Studio Menu item 的简单使用
关于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 的简单使用相关推荐
- Android Studio学习记录之简单的页面切换及宫格菜单
Android Studio学习记录之简单的页面切换及宫格菜单 之前上课听老师讲的一些东西自己其实并没有消化,今天把不懂的都去网上搜了一下,有了一种恍然大悟的感觉,包括很多方方面面的东西.有些东西听说 ...
- (超多图)基于Android studio开发的一个简单入门小应用(超级详细!!)(建议收藏)
基于Android studio开发的一个简单入门小应用 一.前言 二.前期准备 三.开发一个小应用 五.运行应用 一.前言 在暑假期间,我学习JAVA基础,为了能早日实现自己用代码写出一个app的& ...
- 用Android Studio设计的一个简单的闹钟APP
该闹钟是用Android Studio为安卓手机设计的一个简单的闹钟APP 一.介绍系统的设计界面 闹钟的布局文件代码如下 <?xml version="1.0" encod ...
- 在 Android Studio 中创建一个简单的 QQ 登录界面
一,创建一个新的 Android Studio 项目 打开 Android Studio,选择 "Start a new Android Studio project",然后填写应 ...
- android studio开发整合资源简单实现android扫一扫功能
开发安卓app过程中需要集成扫码功能,搜索的时候发现了 http://blog.csdn.net/yuzhiqiang_1993/article/details/52805057 这篇博客文章,写的很 ...
- Android Studio 画笔功能绘制简单图形
一 设置页面布局 设置activity_main.xml为帧布局便于画图时直接使用位置进行绘制 二 新建java类用于编写绘图代码 在mainactivity目录下新建myview类 三 继承原有vi ...
- Android studio利用MPAndroidChart制作简单柱形图
1.在项目的build.gradle的allprojects添加 maven { url "https://jitpack.io" } allprojects {repositor ...
- android studio 去掉标题栏的简单方法
就这一句话就行,试试看.
- Google发布Android Studio 1.0
第一个IDE稳定版本:Google发布Android Studio 1.0 摘要:Google于今天发布了Android Studio 1.0,其新增的突出特性包括:首次安装向导方面.示例导入和 ...
- arcore_如何使用ARCore和Android Studio构建增强现实Android应用
arcore by Ayusch Jain 通过Ayusch Jain 如何使用ARCore和Android Studio构建增强现实Android应用 (How to build an Augmen ...
最新文章
- 2022-2028年中国美瞳行业应用市场需求及开拓机会研究报告
- 感知哈希算法(perceptual hash algorithm),
- android学习笔记之ImageView的scaleType属性
- koa 接口返回数据_koa-api
- 浮点数运算的精度问题:以js语言为例
- mysql 笔试题_MySQL笔试题详解(一)(中等难度)
- 面向切面编程AOP的最佳入门示例
- mfc如何将一个数组中的字节数据用串口发送出去_RS232串口多机通信
- 阿里在美申请区块链专利;Win10 最新漏洞被发现;MongoDB 4.2 发布​ | 极客头条...
- 实现关于跨二级域名和1.1和2.0版.net Forms身份验证体制的问题和解决办法.
- html特殊符号的表示
- 企业微信好友无上限,私域流量即将迎来春天?
- 【内部流出,勿做商用】今日教大家如何抢聚划算
- dismiss和remove_rule out与dismiss的区别
- 快速上手ndk开发! Mac/Win下配置和使用!(2018.4重编版)
- 支付宝小程序 使用uView实现省市区三级联动的后续
- 全国职称计算机应用能力考试6,全国职称计算机应用能力考试.doc
- 在 Windows Server 2003 企业服务器中如何配置 IPv6 协议
- Arcgis实验一 空间数据数字化、投影变换与仿射变换
- 市面上微型计算机的主频,目前市面上最大屏幕的手机,你知道是哪款吗?
热门文章
- 为啥要看javac源代码
- Flixel Dame Tank学习一:半成品坦克大战
- 下面哪个不是python合法的变量名_下面哪个不是Python合法的标识符
- 手机拍照就能实现的免费文档扫描,告别打印店扫描和付费软件
- 【2014年计划】IT之路
- python项目源码和注解_python源代码和注释 - 随笔分类 - 秦朗的天空 - 博客园
- layer mobile使用方法
- 手把手:用OpenCV亲手给小扎、Musk等科技大佬们做一张“平均脸”(附Python代码)
- 5角星画法 android,Android Canvas绘制正多边形和正多角星
- 基于STM32的卧室智慧监测系统