Android 菜单的使用

有时间就随笔记录自己遇到的问题和所学的知识哈。
这是对本牛崽知识的提升也可以给其他牛牛们来点鸡汤和开胃菜。
菜单Menu的创建
首先menu是属于布局的嘛,所以嘞,咱们得在res(也就是布局资源)创建一个menu资源文件,然后在menu里头创建main.xml,不用担心找不到xml,如果Android Studio没问题一般都是自动提示你。

创建好了就可以开始用菜单了,菜单大家应该都见过,就比如扣扣界面的右上角的+,就是个菜单。
为啥要出现菜单?你想想,有那么多功能,手机屏幕本来就小,所以我们得把一些不是很核心的界面放到一个角落包起来,要用的时候点开找到就可以跳过去设置了。(纯属本人理解哈,有错纠错别打脸,无错就幸免了)。
开始代码环节
本牛崽这次的随笔内容就是在上次那个界面的基础上写的,毕竟是个合成的过程,又不是java算法程序。效果就是图中:(后面两张是点击add,remove产生的哦)




闲话不说上结构
首先MainActivity是不能少的,第一个图片就是它,然后操作菜单也是在MainActivity里。主要牵扯到:
public boolean onCreateOptionsMenu(Menu menu)
public boolean onOptionsItemSelected(@NonNull MenuItem item) 一个是创建选择按钮,一个是跳转选择,字面意思应该看得出来的。 创建代码就是:
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
通过 getMenuInflater()方法能够得到 MenuInflater 对象,再调用它的 inflate()方法 就可以给当前活动创建菜单了。inflate()方法接收两个参数,
第一个参数用于指定我们通过哪 一个资源文件来创建菜单,这里当然传入 R.menu.main。第二个参数用于指定我们的菜单项将 添加到哪一个Menu对象当中,
这里直接使用onCreateOptionsMenu()方法中传入的menu参数。 然后给这个方法返回 true,表示允许创建的菜单显示出来,如果返回了 false,创建的菜单将
无法显示。
书中原话,意思就是用来调用并创建方法我估计是为了给跳转选择提供参数的,因为跳转选择中有switch供选择(本牛崽第一次学,自己的见解,不喜勿喷);
接着贴onOptionsItemSelected
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.add1:
Toast.makeText(this,"add",Toast.LENGTH_LONG).show();
Intent i=new Intent(MainActivity.this,Main3Activity.class);
Toast.makeText(MainActivity.this,"你已进入add",Toast.LENGTH_LONG).show();
startActivity(i);
break;
case R.id.remove1:
Toast.makeText(this,"remove",Toast.LENGTH_LONG).show();
Intent in=new Intent(MainActivity.this,Main2Activity.class);
Toast.makeText(MainActivity.this,"你已进入remove",Toast.LENGTH_LONG).show();
startActivity(in);
break;
default:break;
}
return true;
}
我呢,创建了其他两个活动,给他们add,remove使用,item.getItemId()就是判断你点击的是哪个按钮,那个add1是我的名字,这个得去main.xml里面拖,
都是xml,main肯定也是布局文件,所以我是直接拖的;

我就直接拖了两个菜单选项进去,然后改名字。add1是id名字,本窗口的名字还是Add和Remove哈!
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="Add"
android:id="@+id/add1"/>
<item android:title="Remove"
android:id="@+id/remove1"/>
</menu>
补充下,带+就是新建一个id,不带+就是改写。
这就是今天上午学的啦,有时间就随笔下,巩固自己也可能造福他人,让更多的牛崽崽变大牛吧!奥利给。
顺便在这补充下:关于监听器,跳跃网站的方法,一些和我一样水平的牛崽崽可能已经学过了,但是为了巩固自己的知识,本牛崽打算再说一遍:
ImageView iv=findViewById(R.id.iv1);
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("https://www.luogu.com.cn"));
startActivity(i);
}
}); 技术可能不到家,就创了个图片按钮,点一下就跳转到洛谷去了,嘿嘿。
具体的主要是Intent.ACTION_VIEW,其他的还有很多,
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(Intent.ACTION_DIAL);
i.setData(Uri.parse("tel:1008611"));
startActivity(i);
}
});
各位,打个1008611话费流量直通车压压惊吧!
效果如图:

点一下我的那个皮卡丘,就跳过来了哈
虚拟机嘛,肯定打不通的嘛,所以我就准备连接上自己的手机,来一波操作,欣赏下安卓的魅力啦!
我这边是小米的手机,反正连接手机很简单,先找到MIUI的版本信息,长按就可以开启开发者选项,找到开发者选项(我直接让小爱同学开,哈哈)
把USB的调试都打开就好啦,然后插入数据线就会自动更换模拟器(废话,真手机来了还要你模拟器干嘛,果断踢开。。。)

然后本牛崽就开始啦:

不用我出手,自己踢开了。



奥,本牛崽是电信的卡,打移动肯定不行啦,小姐姐好无情:
您好,请您使用移动手机电话拨打,谢谢使用,再见
0:06闪了两下就挂了。
好了,补充 的一些隐式Intent就说完了,我觉得很有趣,希望各位和我一个水平或者比我差那么一点点火候的牛崽崽们好好学哈。
最好是培养兴趣,兴趣是最好的老师,首先想对一个东西感兴趣就得对它好奇,
对人也是一样,如果想让异性对你感兴趣,就创造机会和能力让 她/他 对你产生好奇吧!
Android 菜单的使用的更多相关文章
- Android菜单详解(四)——使用上下文菜单ContextMenu
之前在<Android菜单详解(二)——创建并响应选项菜单>和<Android菜单详解(三)——SubMenu和IconMenu>中详细讲解了选项菜单,子菜单和图标菜单.今天接 ...
- Android菜单详解(一)——理解android中的Menu
前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...
- 【转】Android菜单详解——理解android中的Menu--不错
原文网址:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541709.html 前言 今天看了pro android 3中menu这一章,对A ...
- Android菜单(动画菜单、360波纹菜单)
Android菜单(动画菜单.360波纹菜单) 前言:Android菜单常用集合:FragmentTabHost系统菜单.上移式菜单.360波纹菜单.展开式菜单.详解注释,可直接拿来用! 效果: ...
- Android菜单
Android菜单概述 菜单是Activity的一个重要组成部分,它为用户操作提供了快捷的途径.Android提供了一个简单的框架来向程序中添加标准菜单 . 一.创建一个菜单资源 你需要在一个XML ...
- Android菜单(menu)
Android 菜单 我们继续来进行学习,今天写一下在软件中用的还算较多的菜单. 1.Menu 菜单,很显然,作用就是点击不同的选项触发不同的方法.现在在安卓使用中推荐使用ActionBar,但这里 ...
- Android菜单项内容大全
一.介绍: 菜单是许多应用中常见的用户界面组件. Android3.0版本以前,Android设备会提供一个专用"菜单"按钮呈现常用的一些用户操作, Android3.0版本以后, ...
- Android菜单Menu的创建
在res目录下的menu文件夹下创建一个main.xml文件,内容如下: <?xml version="1.0" encoding="utf-8"?> ...
- Android 菜单(OptionMenu)
菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu).上下文菜单(ContextMenu)和子菜单(SubMenu). 一.概述 ...
- Android—菜单
layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...
随机推荐
- 介绍下重绘和回流(Repaint & Reflow),以及如何进行优化
1. 浏览器渲染机制 浏览器采用流式布局模型(Flow Based Layout) 浏览器会把HTML解析成DOM,把CSS解析成CSSOM,DOM和CSSOM合并就产生了渲染树(Render Tre ...
- redis(十五):Redis 有序集合(sorted set)(python)
#coding:utf8 import redis r =redis.Redis(host="23.226.74.190",port=63279,password="66 ...
- bzoj1661[Usaco2006 Nov]Big Square 巨大正方形*
bzoj1661[Usaco2006 Nov]Big Square 巨大正方形 题意: n*n的图中有一些J点,一些B点和一些空白点,问在空白点添加一个J点所能得到的有4个J点组成最大正方形面积.n≤ ...
- OSCP Learning Notes - Capstone(1)
Kioptrix Level 1.1 Walkthrough Preparation: Download the virtual machine from the following website ...
- p70_域名解析系统DNS
一.DNS作用 二.域名 www.cskaoyan.com. www 三级域名 cskaoyan 二级域名 com 顶级域名 三.域名服务器 根域名服务器:知道所有顶级域名服务器的域名和ip地址 顶级 ...
- 题解 洛谷 P3210 【[HNOI2010]取石头游戏】
考虑到先手和后手都使用最优策略,所以可以像对抗搜索一样,设 \(val\) 为先手收益减去后手收益的值.那么先手想让 \(val\) 尽可能大,后手想让 \(val\) 尽可能小. 继续分析题目性质, ...
- 题解 洛谷 P6349 【[PA2011]Kangaroos】
先考虑对题目进行转化,我们称两个区间有交集为这两个区间能匹配,每个询问就是在序列中最长能连续匹配的长度. 对序列中的一个区间\([l,r]\)和询问的一个区间\([L,R]\),若满足\(L \leq ...
- paypal支付平台如何使用二次验证码_虚拟MFA_两步验证_谷歌身份验证器?
一般点账户名——设置——安全设置中开通虚拟MFA两步验证 具体步骤见链接 paypal支付平台如何使用二次验证码_虚拟MFA_两步验证_谷歌身份验证器? 二次验证码小程序于谷歌身份验证器APP的优势 ...
- netcore RabbitMQ入门--win10开发环境
安装 1.进入rabbitMQ官网下载安装包 2.点击安装包安装的时候会提示需要先装erlang 点击是会自动跳转到erlang的下载界面如果没有跳转可以直接点击这里下载,根据系统选择下载包 下载完之 ...
- 部署SpringBoot到阿里云
目录 安装Mysql 1. 下载命令 2. 进行repo的安装: 3. 安装mysql 部署SpringBoot到阿里云服务器 1.IDEA下载插件 2.进入 Preference 配置一个 Acce ...
