菜单Menu Android手机用一个按键“Menu”专门来显示菜单,所以,当应用程序设置了菜单,我们可以通过该按键来操作应用程序的菜单选项。 有两种不同的实现方式:
访问res中menu菜单资源 /res/menu/存放为应用程序定义各种菜单的资源,包括选项菜单、子菜单、上下文菜单资源
Android推荐使用XML来定义菜单,使用XML“定义菜单将会提供更好的解耦。
一、android中Menu菜单是隐藏的
在activity主界面按手机Menu键最多只能显示6个菜单项,设置6个以上, 弹出的带图标选项的菜单选项只能显示当前5个菜单项, 第六个菜单项也是more菜单项(单击会浮现出一个主界面之上的一个扩展项, 不显示图标,可以显示单选框和复选框)
二、三种菜单类型:
1,optionsmenu(主菜单),通过按home键来显示 特点:只支持文字和图标 expandedmenu,不支持icon 2,contextmenu(上下文菜单) 特点:在view上按上2s后显示 不支持icon和快捷键 3,submenu(子菜单) 特点:以上两种可以加入子菜单 子菜单不能嵌套子菜单----android系统,菜单只有两层 子菜单不支持icon
三、菜单分组功能
把相似功能的菜单分成同一组,通过调用 setGroupCheckable,setGroupEnabled,setGroupVisible设置属性, 无须单独设置
四、菜单创建方式
创建方式有两种:
1,通过在布局文件中声明创建 <menu>根元素,里面嵌套<item>和<group>子元素,<item>可以嵌套<menu>形成子菜单 <group>(表示一个菜单组)元素的属性说明:
id:唯一标识该菜单组引用id
menuCategory:对菜单进行分类,定义菜单的优先级,有效值为container、system、secondary、alternative。
orderInCategory:一个分类排序整数。
checkableBehavior:选择行为,单选、多选还是其他。有效值为none、all、single
visible:是否可见,值true和false
enabled:是否可用,true或false。
<item>表示菜单项。
id:唯一标识该菜单组引用id
menuCategory:菜单分类
orderInCategory:分类排序
title:菜单标题字符串
titleCondensed:浓缩标题,适合标题太长的时候使用。
icon:菜单的图标
alphabeticShortcut:字符快捷键
numericShortcut:数字快捷键
checkable:是否可选
chexked:是否已经被选
visible:是否可见,值true和false
enabled:是否可用,true或false。

2,另一种通过在代码中创建。
(1)Context Menu 代码之上下文菜单
特点:在view上按上2s后显示。 不支持icon和快捷键
当用户长事件按键不放时,弹出的菜单为上下文菜单。(windows里右键单击弹出的菜单)
步骤:
1,onCreateContextMenu()方法,调用Menu的add方法添加菜单项
2,onContextItemSelected()方法相应菜单单击事件
3,调用registerForContextMenu()方法,为视图注册上下文菜单

(2) OptionMenu 代码之选项菜单
当用户点击设备上的菜单(menu)按键时,弹出的菜单就是选项菜单。
选项菜单菜单项最多只能有6个,超过第六个第六个帝宗显示更多。
步骤:
1,覆盖Activity的onCreateOptionsMenu(Menumenu)方法,第一次打开时自动调用
2,调用Menu的add()方法添加菜单项(MenuItem),可调用MenuItem
的setIcon()方法设置图标
3,当菜单项(Menuitem)被选择,调用onOptionsItemSelected()方法来响应事件

(3) SubMenu 代码之子菜单
就是将相同功能的分组进行多级显示的一种菜单(如:windows“文件”菜单中又有“新建”、“打开”等子菜单)
特点:以上两种可以加入子菜单
子菜单不能嵌套子菜单----android系统,菜单只有两层
子菜单不支持icon
步骤:
1,onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法添加子菜单项
2,调用SubMenu的add()方法,添加子菜单(SubMenu)
3,onContextItemSelected(0方法相应菜单点击事件


代码总结: https://git.oschina.net/22889/Android_ApplicationResource_Menu.git


更多相关文章

  1. 【Android架构师java原理专题详解】一;泛型原理详解
  2. Android常见面试题&字节跳动、阿里、腾讯2019实习生Android岗部
  3. Android(安卓)限制textview Edittext 只能输入电话号码和特定字
  4. Android(安卓)SurfaceView入门学习
  5. Android使用selector修改TextView中字体颜色和背景色的方法
  6. android应用创建子进程的方法探究
  7. android学习——使用TableLayout动态生成表格,并为tablerow中的列
  8. AsyncTask 和 Handler的优缺点
  9. Android多线程篇(下)-安卓基础知识整理

随机推荐

  1. AndFix解析——(上)
  2. 如何编程实现开启或者关闭GPS
  3. 构建 Android(安卓)手机 RSS 阅读器
  4. Android音乐播放器开发
  5. android中Invalidate和postInvalidate的
  6. Android之打造ListView的万能适配器
  7. Android数据库 之 SQLite数据库
  8. android service 详解
  9. Android高手进阶教程(十七)之---Android
  10. Android(安卓)图片缩放-Matrix