菜单(menu)
菜单
menu ——菜单默认隐藏
——实现菜单的接口:
- Menu,父接口,用于创建主菜单
- SubMenu继承Menu接口,用于创建子菜单
- ContextMenu接口继承Menu接口,用于创建上下文菜单
- MenuItem接口用户创建菜单项
1.选项菜单
基本方法:
- public boolean onCreateOptionsMenu(Menu menu)
在此方法之中设置多个菜单项(MenuItem)
- 返回值:返回true表示显示菜单,反之则不显示
- public boolean onOptionsItemSelected(MenuItem item)
在此方法之中判断菜单项的操作
- public void onOptionsMenuClosed(Menu menu)
当菜单关闭时触发此操作
- public boolean onPrepareOptionsMenu(Menu menu)
在菜单显示前触发此操作
- 返回值:返回true则继续调用OnCreateOptionsMenu(方法),反之则不再调用
- 在方法中定义菜单
- 在资源文件中定义菜单
1) 在res文件夹下创建menu文件夹
2) 在menu文件夹下创建options.xml

<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/save"
android:title="保存信息">
</item>
<item android:id="@+id/delete"
android:title="删除信息">
</item>
<item android:id="@+id/help"
android:title="帮助">
<menu>
<item android:id="@+id/item01"
android:title="说明">
</item>
<item android:id="@+id/item02"
android:title="简介">
</item>
</menu>
</item>
</menu>


1 protected void onCreate(Bundle savedInstanceState) {
2 super.onCreate(savedInstanceState);
3 setContentView(R.layout.main);
4 }
5 public boolean onCreateOptionsMenu(Menu menu) {
6 //1.在方法中定义菜单
7 //menu.add("增加");
8 //menu.add("删除");
9 //SubMenu sm=menu.addSubMenu("帮助");
10 //sm.add("简介");
11 //sm.add("说明");
12 //2.在资源文件中定义菜单
13 //创建菜单资源解析对象
14 MenuInflater mif = getMenuInflater();
15 //解析菜单资源
16 mif.inflate(R.menu.options, menu);
17 return super.onCreateOptionsMenu(menu);
18 }
19 //重写Activity类中的方法在该方法中编写菜单项被选中后的事件代码
20 public boolean onOptionsItemSelected(MenuItem item) {
21 switch (item.getItemId()) {
22 case R.id.save:
23 Toast.makeText(this, "选中保存", 500).show();
24 break;
25 case R.id.delete:
26 Toast.makeText(this, "选中删除", 300).show();
27 break;
28 }
29 return super.onOptionsItemSelected(item);
30 }

2.上下文菜单
基本方法:
- public void onCreateContextMenu(ContextMenu menu,
View v, ContextMenu. ContextMenuInfo menuInfo)
在此方法之中可以设置所需要的显示的所有菜单项
- public boolean onContextItemSelected(MenuItem item)
当某一个菜单项被选中时触发此操作
- public void onContextMenuClosed(Menu menu)
当菜单项关闭时触发此操作

<menu>
<item android:id="@+id/save"
android:title="保存信息"/>
<item android:id="@+id/delete"
android:title="删除信息"/>
<item android:id="@+id/help"
android:title="帮助"/>
</menu>


1 protected void onCreate(Bundle savedInstanceState) {
2 super.onCreate(savedInstanceState);
3 setContentView(R.layout.main);
4 //长按文本框出现上下文菜单
5 TextView tv=(TextView) findViewById(R.id.TextView01);
6 registerForContextMenu(tv);
7 }
8 public void onCreateContextMenu(ContextMenu menu,
9 View v, ContextMenuInfo menuInfo) {
10 super.onCreateContextMenu(menu, v, menuInfo);
11 MenuInflater flater=getMenuInflater();
12 flater.inflate(R.menu.options,menu);
13 menu.setHeaderIcon(R.drawable.b);
14 menu.setHeaderTitle("信息操作");
15 }

菜单(menu)的更多相关文章
- Ecshop 后台增加一个左侧列表菜单menu菜单的方法
Ecshop 后台增加一个左侧列表菜单menu菜单需要修改三个文件:/admin/includes/inc_menu.php/admin/includes/inc_priv.php/languages ...
- yii2 rbac权限控制之菜单menu详细教程
作者:白狼 出处:http://www.manks.top/article/yii2_rbac_menu本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...
- yii2权限控制rbac之菜单menu最详细教程
前面我们在博文 yii2搭建完美后台并实现rbac权限控制实例教程中完美实现了yii2的后台搭建和rbac权限控制,如果你还没有实现,请先看上文再回来参考本文,因为本文是在上文的基础上进行完善和补充. ...
- 后台增加一个左侧列表菜单menu菜单的方法
Ecshop 后台增加一个左侧列表菜单menu菜单需要修改三个文件:/admin/includes/inc_menu.php/admin/includes/inc_priv.php/languages ...
- 解决android4.0系统中菜单(Menu)添加Icon无效问题
本文转载自: http://blog.csdn.net/stevenhu_223/article/details/9705173 在Android4.0系统中,创建菜单Menu,通过setIcon方法 ...
- 【转】Ecshop 后台增加一个左侧列表菜单menu菜单的方法
cshop 后台增加一个左侧列表菜单menu菜单需要修改三个文件:/admin/includes/inc_menu.php/admin/includes/inc_priv.php/languages/ ...
- Android-上下文菜单Menu
上一篇博客介绍了,Android-普通菜单Menu,而这篇博客介绍Android-上下文菜单Menu AndroidManifest.xml 中加入权限: <!-- 读取联系人数据的权限 --& ...
- Android-普通菜单Menu
第一种方式,使用Java方式 第二种方式,使用menu.xml package liudeli.activity; import android.app.Activity; import androi ...
- 菜单Menu(AS开发实战第四章学习笔记)
4.5 菜单Menu Android的菜单主要分两种,一种是选项菜单OptionMenu,通过按菜单键或点击事件触发,另一种是上下文菜单ContextMenu,通过长按事件触发.页面的布局文件放在re ...
- GUI的最终选择 Tkinter(七):菜单Menu组件、Menubutton组件、OptionMenu组件
Menu组件 今天说的Menu组件就是一些菜单组件,开始点点点... Tkinter提供了一个Menu组件,可以实现顶级菜单,下拉菜单和弹出菜单.由于底层是代码实现和优化的,所以不太建议通过按钮和其他 ...
随机推荐
- Hibernate注解(一):基本注解
在Hibernate中使用注解,主要是为了替代映射文件,完成“类到表,属性到字段”的映射.JPA提供了一套功能强大的注解.Hibernate直接使用了JPA的这套注解.当然,对于JPA中的一些不足,H ...
- Anaconada安装
目录 Anaconda介绍 Anaconda下载 安装Anaconda 配置环境变量 管理虚拟环境 activate 切换环境 卸载环境 关于环境总结 安装第三方包 卸载第三方包 查看环境包信息 导入 ...
- Netty源码分析--Channel注册(上)(五)
其实在将这一节之前,我们来分析一个东西,方便下面的工作好开展. 打开启动类,最开始的时候创建了一个NioEventLoopGroup 事件循环组,我们来跟一下这个. 这里bossGroup, 我传入了 ...
- 《周四橄榄球之夜》流媒体视频拆解:Twitch VS Amazon Prime
文 / Phil Cluff 译 / 王月美 原文链接:https://mux.com/blog/thursday-night-football-streaming-technology-showdo ...
- SQLAlchemy基本使用,创建表,增删改查
基础语法 创建连接 from sqlalchemy import create_engine # 写法1 engine = create_engine("postgresql://scott ...
- Docker搭建MySQL主从集群,基于GTID
写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-do ...
- Python 爬虫从入门到进阶之路(十三)
之前的文章我们介绍了一下 BeautifulSoup4 模块,接下来我们就利用 BeautifulSoup4 模块爬取<糗事百科>的糗事. 之前我们已经分别利用 re 模块和 Xpath ...
- vue接入萤石云视频
在萤石云开放平台注册开发者账号,网址:https://open.ys7.com/guide.html 在“开发者服务”-->“我的设备”里添加已有设备或者申请一个试用设备 然后点击“我的应用”里 ...
- SPOJ INTSUB - Interesting Subset(数学)
http://www.spoj.com/problems/INTSUB/en/ 题意:给定一个集合,该集合由1,2,3....2n组成,n是一个整数.问该集合中有趣子集的数目,答案mod1e9+7. ...
- Git使用小技巧之多个远程仓库
想要获取更多文章可以访问我的博客 - 代码无止境. 这是一个普通的工作日,小代正在勤勤恳恳的写代码.这时陈BOSS走到小代身边,跟小代说:"我们的代码需要同时推送到Github和码云两个仓库 ...