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方法相应菜单点击事件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值