http://www.cnblogs.com/Mrs-cc/archive/2012/07/21/2603042.html

1.OptionsMenu (选项菜单)用法总结
 
使用方法:
方法一:添加菜单项:onCreateOptionsMenu(Menu menu)中添加menu.add(Menu.NONE,Menu.FIRST+1,5,"删除").setIcon()------>添加选择菜 单项事件:在onOptionsItemSelected(MenuItem item)中 switch(item.getItemId()),然后添加对应选择事件------>添加关闭菜单事 件:onOptionsMenuClosed(Menu menu),在其中添加代码即可-------->添加准备菜单(菜单显示之前的事件),在其中添加代码即可
方法二:添加菜单的样式:在res中创建menu目录,建立 xml,<menu><item id&&icom.etc></item></menu>-------> onCreateOptionsMenu(Menu menu)中 this.getMenuInflater().inflate(R.menu.options_menu,menu);
函数说明:
 
add()方法的四个参数,依次是:
1、组别,如果不分组的话就写Menu.NONE,
2、Id,这个很重要,Android根据这个Id来确定不同的菜单
3、顺序,那个菜单现在在前面由这个参数的大小决定,从1到6一次是同上往下,从左到右排。
4、文本,菜单的显示文本
setIcon(图片路径):为菜单设置图标
getMenuInflater().inflate(R.menu.options_menu,menu):
a.inflate的作用是将xml定义的而一个布局找出来,但仅仅是找出来。
b.第一个参数是布局,第二个参数是菜单。
 
2.ContextMenu上下文菜单
 
继承自Menu。与选项菜单不同的是:选项菜单服务于Activity,二上下文菜单式注册到某个View对象上的。而且使用上下文菜单需要注册,否则无法显示。最后上下文菜单无法添加图标和快捷键。
使用顺序: 添加菜单的样式:在res中创建menu目录,建立xml,<menu><item id&&icom.etc></item></menu>,每个上下文子菜单对应一个xml -------> 注册:onCreate()中使用registerForContextMenu(控 件);--------->onCreateOptionsMenu(Menu menu)中创建一个MenuInflater,用if判断出传入的View是哪个控件中,在这触发控件所得到的菜单的样 式:inflater.inflate(样式,menu);
 
3.子菜单 SubMenu
使用顺序:
1、 覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法来添加子菜单
2、 调用SubMenu的add()方法,添加子菜单
3. 用SubMenu.setHeaderIcon(),和SubMenu.setHeadTitle()设置标题 和标题图片。
3、 覆盖onContextItemSelected()方法,响应子菜单的单击事件

Android 控件 之 Menu 菜单的更多相关文章

  1. Android4.0 -- UI控件之 Menu 菜单的的使用(三)

    上一讲 [Android 开发]:UI控件之 Menu 菜单的的使用(二) 我们讲解了创建上下文菜单的第一种使用方式:Creating a floating context menu [创建悬浮的上下 ...

  2. Android4.0 -- UI控件之 Menu 菜单的的使用(四)

    2.  PopupMenu 菜单的使用 1) PopupMenu 介绍   创建弹出菜单,它一般会在view的上边或者下边弹出菜单[具体看是否有空间],注意弹出菜单是api在11或者更高版本中使用   ...

  3. Android4.0 -- UI控件之 Menu 菜单的的使用(二)

    上一讲我们讲解了android中在代码或者xml文件中定义菜单,这一讲我们继续来讲解一下定义菜单的其他方式:创建上下文的菜单.查看API文档 Menus :Creating Contextual Me ...

  4. Android4.0 -- UI控件之 Menu 菜单的的使用(一)

      这一讲开始我们来讲一下Android中菜单的使用方法,菜单是应用中的普通的组件,主要是提供友好和专注的用户体验,你可以在你的Activity中使用 Menu APIs 来提供用户动作和其他选项的操 ...

  5. Android控件Gridview实现多个menu模块,可添加可删除

    此案例主要讲的是Android控件Gridview(九宫格)完美实现仿支付宝首页,包含添加和删除功能:Fragment底部按钮切换的效果,包含四个模块,登录页面圆形头像等,一个小项目的初始布局. 效果 ...

  6. UIAutomator定位Android控件的方法

    UIAutomator各种控件定位的方法. 1. 背景 使用SDK自带的NotePad应用,尝试去获得在NotesList那个Activity里的Menu Options上面的那个Add note菜单 ...

  7. Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)

    本人之前以前撰文描写叙述Appium和UIAutomator框架是怎样定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种Fin ...

  8. 【转】UIAutomator定位Android控件的方法实践和建议(Appium姊妹篇)

    原文地址:http://blog.csdn.net/zhubaitian/article/details/39777951 在本人之前的一篇文章<<Appium基于安卓的各种FindEle ...

  9. UIAutomator定位Android控件的方法实践和建议(Appium姊妹篇)

    在本人之前的一篇文章<<Appium基于安卓的各种FindElement的控件定位方法实践和建议>>第二章节谈到Appium可以通过使用UIAutomator的方法去定位And ...

随机推荐

  1. Android 两个Activity进行数据传送 发送

    Activity1:: Intent intent= new Intent(this, OtherActivity.class); String name = "heyiyong" ...

  2. Android 使用HttpClient方式提交POST请求

    final String username = usernameEditText.getText().toString().trim(); final String password = passwr ...

  3. StringGrid右击选中表格(发消息给句柄模拟点击,右键点击也是MouseDown)

    顺便还把单元格给变了: procedure TFGLGL.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShi ...

  4. 关于sql语句in的使用注意规则( 转)

    select * from tuser where userno not in(select userno from filter_barcode) 上面这条语句子查询里,userno 并不存在fil ...

  5. 【PPC】Qemu怎么玩儿

    1. 编译Qemu这里不建议使用自动安装,手工编译下.Qemu源代码的质量很高,什么环境都能编译过.tar -xzvf qemu.tar.gzmkdir build-qemucd build-qemu ...

  6. bzoj1014

    动态询问LCP,所以我们不好用后缀数组考虑使用维护序列问题的splay+hash求LCP这里mark一下,hash求LCP常用mo=9875321自然溢出的话交上去莫名其妙WA了这里树上某节点hash ...

  7. Linux Kernel 'perf_event.c'本地权限提升漏洞

    漏洞版本: Linux Kernel 3.11-rc4 漏洞描述: Linux Kernel是一款开源的操作系统 Linux Kernel 'perf_event.c'存在一个安全漏洞,允许本地攻击者 ...

  8. JS原型函数相关基础知识

    函数对象和普通对象 //普通对象 var oo1 = {}, oo2 = new Object(), oo3 = []; console.log(typeof oo1 + ',' + typeof o ...

  9. Android 布局之DrawLayout

    在刚开始学android的时候肯定会知道,android的主要的布局就是LinearLayout.RelativeLayout.FramLayout.AbsoluteLayout.以及TableLay ...

  10. Spark PySpark数据类型的转换原理—Writable Converter

    Spark目前支持三种开发语言:Scala.Java.Python,目前我们大量使用Python来开发Spark App(Spark 1.2开始支持使用Python开发Spark Streaming ...