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 ...
随机推荐
- Jetbranis学习资料之全家桶
相信很多小伙伴,用的代码编辑器很多都是Jetbrains的,但好东西不可能免费的,而且找了很多激活码都是失效总是莫名其妙的就过期了.下面分享一个不错的激活码地址,比其他的应该更加可靠.本人实测目前支持 ...
- 阿里云centos7服务器nginx配置及常见问题解答
前言: 本文参考了jackyzm的博客:https://www.cnblogs.com/jackyzm/p/9600738.html,进行了内容的更新,并请注意这里适用的版本是centos7的版本.并 ...
- ShaderLab-坐标转换
观察空间就是相机的空间 投影矩阵本质就是对x.y.z分量进行不同程度的缩放(z还做了平移),结果就是视锥体近切面远切面变成正方形.视锥体的中心在(0,0). (对于正交相机,这一步已经得到了立方体) ...
- angular浏览器兼容性问题解决方案
问题:edge浏览器下,固定列的边框消失 原因:ng-zorro-antd表格组件使用nzLeft和nzRight指令固定的表格列,这两个指令的实现css3中的标签: position: -webki ...
- T133309 57级返校测试重测-T2-选票统计
大致题意: 找出个数超过n/4的数们. 基本思路: 一开始我是用map做的,然后就很玄学的TLE了. 啊,那就换个法吧. 先排个序,然后一样的数就在一起了, 再然后直接从前往后遍历一下,就能得出结果了 ...
- mybatis generator 的日常使用
一.mybatis-generator的基本配置与使用 使用mybatis-generator来生成常用的dao层类与xml,可以满足基础的增删改查功能 1. 添加pom依赖,常用的几个依赖包 < ...
- 「从零单排canal 05」 server模块源码解析
基于1.1.5-alpha版本,具体源码笔记可以参考我的github:https://github.com/saigu/JavaKnowledgeGraph/tree/master/code_read ...
- 太慢不能忍!CPU又拿硬盘和网卡开刀了!
总线技术 我是CPU一号车间的阿Q,最近为了一件事儿搞得我挺烦的. 当初我们CPU工厂刚刚来到主板上建厂时,那时候主板上的单位还不多,跟我们打交道最多的就是内存那家伙了. 后来,键盘.鼠标.硬盘.网卡 ...
- python dict乱码如何解决
定义字典并直接输出,结果输出结果中文是乱码展示 d={'name':'lily','age':18,'sex':'女','no':1121} print d 输出结果: {'age': 18, 'no ...
- ActiveMQ【CVE-2016-3088】上传公钥实现sssh免密登录
Apache-ActiveMQ是apache旗下的消息中间件,至今为止还是有较多的甲方爸爸们,还在使用该中间件.据了解,Apache-ActiveMQ中间件有2个厉害的CVE,一个是CVE-2016- ...
