Android Menu 菜单用法  一看就懂

Android SDK提供的菜单有如下几种:

  1. 选项菜单:最常规的菜单,android中把它叫做option menu
  2. 子菜单:android中点击子菜单将弹出悬浮窗口显示子菜单项。子菜单不支持嵌套,即子菜单中不能再包括其他子菜单。
  3. 上下文菜单:android中长按视图控件后出现的菜单,windows点击右键弹出的菜单即上下文菜单
  4. 图标菜单:这个比较简单,就是带icon的菜单项,需要注意的是子菜单项、上下文菜单项、扩展菜单项均无法显示图标
  5. 选择菜单(alternative menu):用的比较少,跳过。
  6. 扩展菜单:选项菜单最多只能显示6个菜单项,超过6个时,第6个菜单项会被系统替换为一个叫“更多”的子菜单,原来显示不下的菜单项都作为“更多”菜单的子菜单项。

android.view.Menu接口代表一个菜单,android用它来管理各种菜单项。

注意我们一般不自己创建menu,因为每个Activity默认都自带了一个,我们要做的是为它加菜单项和响应菜单项的点击事件。android.view.MenuItem代表每个菜单项,android.view.SubMenu代表子菜单。其三者的关系可以用下图来表示

  

下面介绍的是各菜单的详细用法:

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,-------> 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,,每个上下文子菜单对应一个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()方法,响应子菜单的单击事件






更多相关文章

  1. 初探Android热修复——tinker接入
  2. Android内核与主线linux内核的比较(Android对Linux内核的改动你知
  3. android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切
  4. Android-自定义滑动菜单(抽屉效果)
  5. android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切
  6. Android(安卓)代码混淆
  7. Android(安卓)input输入设备键值从底层到应用层的映射流程
  8. React Native 中Android实现ImagePicker
  9. Android(安卓)Button控件的使用

随机推荐

  1. AVG Mobilation Pro for Android(安卓)手
  2. Android屏幕锁定实例源码详解教程一
  3. Android修改Eclipse 中的Default debug k
  4. Android教父高焕堂谈Android“开源”与“
  5. android中JNI使用探究
  6. 开篇--基于Android的小巫新闻客户端开发
  7. 还原Android(安卓)PDU彩信
  8. 如何检索Android设备的唯一ID
  9. Android图形显示系统——概述
  10. android 触摸(Touch)事件、点击(Click)事