重拾Android之菜单事件

Android系统支持三种菜单
1、选项菜单 Options Menu
2、子菜单 SubMeu
3、快捷菜单 ContextMenu


Options Menu:打开方式菜单键


分类:
图标菜单:同时显示文字和图标的菜单最多支持6个子项,不支持单选框和复选框。
扩展菜单:是在图标菜单子项多与6个时才出现。通过点击菜单最后的子项more才能打开,扩展菜单是垂直的列表型菜单不支持显示图标,支持单选框和复选框。


选项菜单的使用
重载Activity的onCreateOptionsMenu()函数,才能在Android应用程序中使用选项菜单。初次使用选项菜单时会调用onCreateOptionsMenu()函数,用来初始化菜单子项的内容。
 
设置菜单子项的ID,和组ID
菜单子项显示的文字和图片等



menu.setShortcut("","")第一个参数是为数字键盘设定的快捷键。第二个参数是为全键盘设定的快捷键且不区分字母大小写。


重载onPrepareOptionsMenu()函数,能够动态的添加,删除菜单子项,或修改菜单标题,图标和可见性等内容与onCreateOptionsMenu()返回值意义相同。


选项菜单的处理事件
onOptionsItemSelected()的返回值表示是否对菜单的选择事件进行处理。
MenuItem.getItemId()函数可以获取到被选菜单子项的ID.


子菜单是能够显示更加详细信息的菜单子项
菜单子项使用了浮动窗体的显示形式,能够更好适应小屏幕的显示方式。


Android系统的子菜单使用非常灵活,可以在选项菜单或快捷菜单中子菜单,有利于将相同或相似的菜单子项组织在一起,便于显示和分类。


子菜单支持嵌套


子菜单的添加是使用addSubMenu()函数实现




快捷菜单同样采用了动窗体的显示方式,与子菜单实现方式相同,但两种菜单的启动方式却截然不同


启动方式:快捷菜单类似于普通桌面的程序中的右键菜单,当用户点击界面元素超过2秒后,将启动注册到该界面元素的快捷菜单。


使用方法:与使用选项菜单的方法十分类似,需呀重载onCreateContextMenu()函数和onCreateItemSeleted()函数


onCreateContextMenu()主要用于添加快捷菜单所显示的标题、图标、菜单子项等内容。



选项菜单中onCreateOptionsMenu()函数仅在选项菜单第一次启动时被调用一次,快捷菜单onCreateContextMenu()函数每次的启动的时候都会被调用一次。



可以在快捷菜单中添加子项和子菜单。


快捷菜单选择事件的处理需要重载onCreateContextSelected()函数,该函数在用户选择快捷菜单中菜单子项后被调用,与onOptionsItemSelected()函数的方法基本相同。


Android系统中菜单不仅能够在代码中定义,而且可以向界面布局一样在xml中定义。
使用XML定义界面菜单,将代码与设计分类,有助于简化代码的复杂程度。并且更有利于界面的可视化。




在XML文件中定义菜单后,在onCreateContextMenu()函数中调用getMenuInflate.inflate()将XML资源文件传递给菜单对象。


getMenuInflate为当前Activity返回MenuInflate.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值