Android应用程序资源——menu菜单资源

菜单Menu
Android手机用一个按键“Menu”专门来显示菜单,所以,当应用程序设置了菜单,我们可以通过该按键来操作应用程序的菜单选项。
有两种不同的实现方式:

访问res中menu菜单资源
/res/menu/        存放为应用程序定义各种菜单的资源,包括选项菜单、子菜单、上下文菜单资源
Android推荐使用XML来定义菜单,使用XML“定义菜单将会提供更好的解耦。

一、android中Menu菜单是隐藏的
在activity主界面按手机Menu键最多只能显示6个菜单项,设置6个以上,
弹出的带图标选项的菜单选项只能显示当前5个菜单项,
第六个菜单项也是more菜单项(单击会浮现出一个主界面之上的一个扩展项,
不显示图标,可以显示单选框和复选框)

二、三种菜单类型:
 1,options menu(主菜单),通过按home键来显示
    特点:只支持文字和图标
        expanded menu,不支持icon
 2,context menu(上下文菜单)
    特点:在view上按上2s后显示
        不支持icon和快捷键
3,sub menu(子菜单)
    特点:以上两种可以加入子菜单
        子菜单不能嵌套子菜单----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) Option Menu  代码之选项菜单
当用户点击设备上的菜单(menu)按键时,弹出的菜单就是选项菜单。
选项菜单菜单项最多只能有6个,超过第六个第六个帝宗显示更多。
步骤:
1,覆盖Activity的onCreateOptionsMenu(Menu menu)方法,第一次打开时自动调用
2,调用Menu的add()方法添加菜单项(MenuItem),可调用MenuItem
的setIcon()方法设置图标
3,当菜单项(Menuitem)被选择,调用onOptionsItemSelected()方法来响应事件

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


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



你可能感兴趣的:(菜单,menu,应用程序资源)