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 ...
随机推荐
- requests接口自动化8-传递数据为xml形式的post请求:data
传递数据为xml形式的post请求 请求体内容: <?xml version=“1.0” encoding = “UTF-8”?> <COM> <REQ name=&qu ...
- java 基本语法(九) 数组(二) 一维数组
1.一维数组的声明与初始化 正确的方式: int num;//声明 num = 10;//初始化 int id = 1001;//声明 + 初始化 int[] ids;//声明 //1.1 静态初始化 ...
- sublime text 3+java只编译不输出结果 solution
文章摘自:https://blog.csdn.net/VincentLuo91/article/details/53007135 版权声明:本文为CSDN博主「vincentluo91」的原创文章,遵 ...
- Django框架02 /Django下载安装、url路由分发
Django框架02 /Django下载安装.url路由分发 目录 Django框架02 /Django下载安装.url路由分发 1. django下载安装 2. pycharm创建项目 3. 基于D ...
- Python 实现邮件发送功能(初级)
在我们日常项目中,会经常使用到邮件的发送功能,如何利用Python发送邮件也是一项必备的技能.本文主要讲述利用Python来发送邮件的一些基本操作. 本章主要包含知识点: 邮件发送原理简述即常用smt ...
- C# - 设计- Struct与Class的选择
选择Struct的原则 该类型的实例较小且通常为短生存期,或者通常嵌入到其他对象中. 它以逻辑方式表示单个值,类似于基元类型( int .等 double ). 它的实例大小为16字节. 它是不可变的 ...
- .NET 开源项目 StreamJsonRpc 介绍[下篇]
阅读本文大概需要 9 分钟. 大家好,这是 .NET 开源项目 StreamJsonRpc 介绍的最后一篇.上篇介绍了一些预备知识,包括 JSON-RPC 协议介绍,StreamJsonRpc 是一个 ...
- Java面试题汇总(持续更新)
1. ==和equals的区别 答: 基础数据类型比较:只能使用==,比较值是否相等 引用数据类型比较: 没有重写equals方法:==和equals没有区别,比较的都是引用是否指向了同一块内存 重写 ...
- IDEA命令行缩短器助你解决此问题:Command line is too long. Shorten command line...
生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ...
- DataTable 转 JSON,XML转JSON
今天总结一下关于DataTable,XML转JSON的方法: 首先需要引入命名空间: using Newtonsoft.Json 1 public string DataTableToJsonWith ...