菜单

menu ——菜单默认隐藏

——实现菜单的接口:

  1. Menu,父接口,用于创建主菜单
  2. SubMenu继承Menu接口,用于创建子菜单
  3. ContextMenu接口继承Menu接口,用于创建上下文菜单
  4. 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. 在方法中定义菜单
  2. 在资源文件中定义菜单

    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)的更多相关文章

  1. Ecshop 后台增加一个左侧列表菜单menu菜单的方法

    Ecshop 后台增加一个左侧列表菜单menu菜单需要修改三个文件:/admin/includes/inc_menu.php/admin/includes/inc_priv.php/languages ...

  2. yii2 rbac权限控制之菜单menu详细教程

    作者:白狼 出处:http://www.manks.top/article/yii2_rbac_menu本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...

  3. yii2权限控制rbac之菜单menu最详细教程

    前面我们在博文 yii2搭建完美后台并实现rbac权限控制实例教程中完美实现了yii2的后台搭建和rbac权限控制,如果你还没有实现,请先看上文再回来参考本文,因为本文是在上文的基础上进行完善和补充. ...

  4. 后台增加一个左侧列表菜单menu菜单的方法

    Ecshop 后台增加一个左侧列表菜单menu菜单需要修改三个文件:/admin/includes/inc_menu.php/admin/includes/inc_priv.php/languages ...

  5. 解决android4.0系统中菜单(Menu)添加Icon无效问题

    本文转载自: http://blog.csdn.net/stevenhu_223/article/details/9705173 在Android4.0系统中,创建菜单Menu,通过setIcon方法 ...

  6. 【转】Ecshop 后台增加一个左侧列表菜单menu菜单的方法

    cshop 后台增加一个左侧列表菜单menu菜单需要修改三个文件:/admin/includes/inc_menu.php/admin/includes/inc_priv.php/languages/ ...

  7. Android-上下文菜单Menu

    上一篇博客介绍了,Android-普通菜单Menu,而这篇博客介绍Android-上下文菜单Menu AndroidManifest.xml 中加入权限: <!-- 读取联系人数据的权限 --& ...

  8. Android-普通菜单Menu

    第一种方式,使用Java方式 第二种方式,使用menu.xml package liudeli.activity; import android.app.Activity; import androi ...

  9. 菜单Menu(AS开发实战第四章学习笔记)

    4.5 菜单Menu Android的菜单主要分两种,一种是选项菜单OptionMenu,通过按菜单键或点击事件触发,另一种是上下文菜单ContextMenu,通过长按事件触发.页面的布局文件放在re ...

  10. GUI的最终选择 Tkinter(七):菜单Menu组件、Menubutton组件、OptionMenu组件

    Menu组件 今天说的Menu组件就是一些菜单组件,开始点点点... Tkinter提供了一个Menu组件,可以实现顶级菜单,下拉菜单和弹出菜单.由于底层是代码实现和优化的,所以不太建议通过按钮和其他 ...

随机推荐

  1. localstorage实现带过期时间的缓存功能

    前言 一般可以使用cookie,localstorage,sessionStorage来实现浏览器端的数据缓存,减少对服务器的请求. 1.cookie数据存放在本地硬盘中,只要在过期时间之前,都是有效 ...

  2. 读书笔记——《谁说菜鸟不会数据分析—Python篇》

    最近刚读完一本新书,关注的公众号作者出的“谁说菜鸟不会数据分析—Python篇”,话说现在很多微信公众号大牛都在出书,这貌似是一个趋势.. 说说这本书吧,我之前看过一些网文,对于数据分析这一块也有过一 ...

  3. rm、shutdown、磁盘挂载、vi使用方法

    1. 系统管理文件 1.1 rm 文件与目录有关命令 删除命令 (慎用)    --- 数据是否备份了 rm === remove rm /oldboy/oldboy.txt  --- 删除文件 rm ...

  4. 实现h5公众号分享功能(vue项目也适用)

    在vue项目中我们先npm install weixin-js-sdk --save下载下来在main.js文件中引入 import wx from 'weixin-js-sdk';//引入 Vue. ...

  5. asp.net core 自定义异常处理中间件

    asp.net core 自定义异常处理中间件 Intro 在 asp.net core 中全局异常处理,有时候可能不能满足我们的需要,可能就需要自己自定义一个中间件处理了,最近遇到一个问题,有一些异 ...

  6. 用ASP.NET Core重写了一款网络考试培训的免费软件

    在IT圈混迹了近十年,今已正当而立之年却仍一事无成,心中倍感惶恐惭愧.面对竟争如此激列的环境,该如何应对?却也知不能让自已闲着,得转起来,动起来.于是,便想着利用最新技术栈将自已原来的收费产品重写一次 ...

  7. isinstance()函数判断数据类型

    判断是否是字符串 a = b = " print(isinstance(a,str)) print(isinstance(b,str)) False True 判断是否是列表 a = [,, ...

  8. Kafka集群部署指南

    一.前言 1.Kafka简介 Kafka是一个开源的分布式消息引擎/消息中间件,同时Kafka也是一个流处理平台.Kakfa支持以发布/订阅的方式在应用间传递消息,同时并基于消息功能添加了Kafka ...

  9. 使用 Mybatis 框架 jdbc 方式批量写入 SQL Server,报错 com.microsoft.sqlserver.jdbc.SQLServerException 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数,最多应为2100

    这个错是sqlserver抛出来的. 进过验证,上述错误中的2100为插入的总字段数. 比如下面这种插入方式,values后面的一个括号里的字段为30个,那么后面最多只能加70条,即这种批量插入方式一 ...

  10. ZOJ 3981:Balloon Robot(思维+递推)

    题目链接 题意 有n支队在m个位置上做题,有一个机器人位置1到位置m再到位置1循环走派发气球,当队伍a在时间b做完了一道题目的时候,假如机器人走到队伍a的位置的时间为c,那么这个队伍的不开心值就是c- ...