Android三种菜单简介
Android的菜单分为三种类型:选项菜单(Option Menu)、上下文菜单(Context Menu)、子菜单(Sub Menu)。
一、选项菜单
用户点击设备上的菜单按钮(Menu),触发事件弹出的就是选项菜单。选项菜单最多只有六个,超过六个第六个就会自动显示为“更多”选项,点击后以弹出的方式来展示。
Menu的add方法可以添加一个菜单项,API里列出了四种add重载形式,最多的一个有四个参数:
private MenuItem add(int groupId,int itemId,int order,CharSequence title);
private MenuItem add(inte groupId,int itemId,int order,int titleRes);
- groupId:菜单项的分组Id标识,为整数。将菜单的选项进行分组,这样就把相似功能的菜单项分为同一组,然后可以通过调用setGroupCheckable,setGroupEnabled,setGroupVisible来设置菜单属性,而无需单独设置。
- itemId:当前菜单项的Id标识,为整数。
- order:菜单显示顺序标识,按升序从左到右、从上到下进行显示。为0和正整数,不能为负数。
- title或titleRes:每个菜单项的标题。
创建方法:
1.覆写Activity的onCreateOptionsMenu(Menu menu)方法,当我们第一次打开菜单时调用且只调用一次。
2.调用Menu的add()方法添加菜单选项(MenuItem),可以调用MenuItem的setIcon()方法为菜单项设置图标。
3.当菜单项(MenuItem)被选中时,覆写Activity的onOptionsItemSelected()方法响应事件。
二、上下文菜单
当用户长按View(如Button、EditText、TextView等)时弹出的菜单就是上下文菜单,上下文菜单必须注册到指定的View上才能显示。举个例子:当我们在编辑短信的时候,长按2s短信编辑框(就是个EditText)就会弹出一个菜单,比如有“复制”、“粘帖”、“输入法”等选项,这个弹出的菜单就是上下文菜单。
我们还可通过setHeaderTitle()以及setHeaderIcon()方法为上下文菜单设置标题栏标题以及图标。
创建方法:
1.覆写Activity的onCreateContextMenu()方法,调用Menu的add方法添加菜单项MenuItem
2.调用registerForContextMenu()方法,为VIew注册上下文菜单
3.覆写onContextItemSelected()方法,响应菜单单击事件
三、子菜单
子菜单就是将相似功能的分组进行多级显示的一种菜单,例如:windows的“新建”菜单就包括“新建文件夹”、“新建快捷方式”、“新建文本文档”等子菜单。
创建方法:
1.覆写Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法添加选项菜单(Option Menu),但是此选项菜单包含下一级的子菜单。
子菜单中不能像选项菜单一样给每一个MenuItem设置图片,只能在子菜单的顶部显示图像。
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
menu.add(0,1,1,"菜单1");
SubMenu file=menu.addSubMenu(0, 2, 2, "文件");
file.setHeaderTitle("我的文件");//设置子菜单的标题栏标题
file.setHeaderIcon(android.R.drawable.***);//设置子菜单标题栏图标
MenuItem open=file.add(0, 3,3, "打开");
open.setCheckable(true);
open.setChecked(true);
MenuItem fileNew=file.add(1,4,4,"新建");
fileNew.setChecked(true);
file.add(1, 4, 4,"删除");
file.setGroupCheckable(1, true, true);//将groupId为1的MenuItem设置为选项按钮类型
return true;
}
当点击设备上的Menu按钮后,会在屏幕下方弹出两个选项菜单:“菜单1”和“文件”,然后再单击“文件”时,就会在屏幕中间弹出标题为“我的文件”的子菜单窗口。
2.调用SubMenu的add()方法,添加子菜单项
3.调用onCreateItemSelected()方法,响应菜单单击事件
四、Activity有三种响应菜单项单击事件的方法:
这里没有弄明白,以后用到再看。
Android三种菜单简介的更多相关文章
- Android 三种菜单(Menu)的实现
感谢大佬:https://blog.csdn.net/chileme/article/details/82944764 一.常用方法 java onCreateOptionsMenu(Menu men ...
- Android三种菜单的使用方式
一.选项菜单(OptionMenu) 在res目录下新建menu目录,用于放置菜单布局文件(右键res->new->Android Resource Directory->menu) ...
- Android三种基本的加载网络图片方式(转)
Android三种基本的加载网络图片方式,包括普通加载网络方式.用ImageLoader加载图片.用Volley加载图片. 1. [代码]普通加载网络方式 ? 1 2 3 4 5 6 7 8 9 10 ...
- Android三种左右滑动效果 手势识别
Android三种左右滑动效果 手势识别(转) 手势识别 1.onCreate中添加GestureDetector mGestureDetector; //监听手势事件 mGestureDetec ...
- Android_三种菜单介绍
Android的菜单分为三种类型:选项菜单(Option Menu).上下文菜单(Context Menu).子菜单(Sub Menu) 一.选项菜单 当用户单击设备上的菜单按钮(Menu),触发事件 ...
- android 三种定位方式
http://www.cnblogs.com/oudi/archive/2012/03/22/2411509.html 最近在看android关于定位的方式,查了很多资料,也做了相关实验,在手机上做了 ...
- Android三种实现自定义ProgressBar的方式介绍
一.通过动画实现 定义res/anim/loading.xml如下: View Row Code<?xml version="1.0" encoding="UTF- ...
- Android 三种方式实现自定义圆形进度条ProgressBar
一.通过动画实现 定义res/anim/loading.xml如下: <?xml version="1.0" encoding="UTF-8"?> ...
- Selenium自动化测试脚本中三种等待时间简介
为了提高脚本的稳定性,我们需要在脚本中增加等待时间 第一种:强制等待 Thread.sleep():固定休眠时间设置,Java的Thread类里提供了休眠方法sleep,导入包后就能使用 sleep( ...
随机推荐
- 移动存储卡仍然用FAT32文件系统的真相
微软在2001年就为自家的XP系统的本地磁盘默认使用了NTFS文件系统,但是12年之后,市面上的USB可移动设备和SD卡等外置存储器仍然在用着FAT32文件格式,这是什么理由让硬件厂商选择过时的文件系 ...
- 常用myeclipse的快捷键,对菜鸟超有用的
1. ctrl + h ,这个键超有用的,可以搜索当前项目的整个文件,并锁定到改文件的 具体位置.如图: 2.ctrl + o,在java文件内,搜索该文件下的所有方法.如图: ctrl + d ,删 ...
- PHP的哲学:Simple Is Hard
原帖地址 PHP框架的繁荣是正确的发展方向吗? 作者 正文 poshboytl 发表时间:2009-01-19 最后修改:2009-04-06 做ROR有一年了, 感觉非常好.配合敏 ...
- 元素重叠及position定位的z-index顺序
元素位置重叠的背景常识 (x)html文档中的元素默认处于普通流(normal flow)中,也就是说其顺序由元素在文档中的先后位置决定,此时一般不会产生重叠(但指定负边距可能产生重叠).当我们用cs ...
- 短随机唯一id生成参考
<?php function getRandOnlyId() { //新时间截定义,基于世界未日2012-12-21的时间戳. $endtime=1356019200;//2012-12-21时 ...
- 移动开发框架,第【二】弹:Hammer.js 移动设备触摸手势js库
hammer.js是一个多点触摸手势库,能够为网页加入Tap.Double Tap.Swipe.Hold.Pinch.Drag等多点触摸事件,免去自己监听底层touchstart.touchmove. ...
- ImageView类简介
4.8 图片控件 本节将要介绍的是图片控件ImageView,首先对ImageView类进行简单介绍,然后通过一个案例来说明ImageView的用法. 4.8.1 ImageView类简介 Ima ...
- 银行B2C直连
银行B2C直连: 1. 银联B2C直连流程: 注: 所有银行B2C接入方式均为此流程. 不同银行只是签名及验签方式不一致,请求及返回参数不一样,其他的一致. 2. 银行B2C支付请求: 交易流程: ( ...
- 如何更改应用在app store的名称
如何修改应用在app store 的名称,我修改了plist里面的bundle display name,现在安装后在设备上会显示修改后的名称,可是app store里面还是原来的名称. 何把app ...
- linux系统启动
在本文中,我们按电源按钮简要叙述,以便能够登录到系统,在此期间,系统和计算机硬件是如何一起工作.既作为自己整理知识的摘要,有可能linux0绍,高手请略过. 一般来说linux的启动能够分成三个阶段: ...