Android Menu 之 optionsMenu 详解
来源:互联网 发布:网络诈骗200元 编辑:程序博客网 时间:2024/06/09 18:26
optionsMenu就是用户在按下手机键盘上的Menu键时,Activity下方弹出的菜单。借个图展示一下:
接下来,本文的主要内容有:
1、 如何建立菜单
2、 如何响应菜单上的点击动作
3、 讲解Menu的各种属性及Group分组
首先,如何建立菜单。
其实每个Activity都有处理菜单的能力,我们只需要重写onCreateOptionsMenu(Menu menu)这个方法就可以建立菜单了。具体操作起来有两种方法。
方法一,直接用代码构建Menu。
@Overridepublic boolean onCreateOptionsMenu(Menu menu){ // 方法一,用代码构建 menu.add(Menu.NONE, Menu.NONE, 1, "菜单1"); menu.add(Menu.NONE, Menu.NONE, 2, "菜单2"); menu.add(Menu.NONE, Menu.NONE, 3, "菜单3"); menu.add(Menu.NONE, Menu.NONE, 4, "菜单4"); menu.add(Menu.NONE, Menu.NONE, 5, "菜单5"); menu.add(Menu.NONE, Menu.NONE, 6, "菜单6"); return true; }
方法二,先用xml文件构建好Menu,再到代码里加载。
例如,res/menu/option_menu_1.xml内容如下:
<?xml version="1.0" encoding="utf-8"?><menu xmlns:<a href="http://lib.csdn.net/base/15" class='replace_word' title="undefined" target='_blank' style='color:#df3434; font-weight:bold;'>Android</a>="http://schemas.android.com/apk/res/android"> <group android:id="@+id/logined" android:menuCategory="alternative"> <item android:id="@+id/item1" android:title="菜单1" android:orderInCategory="2" android:icon="@drawable/menu_serach_user"></item> <item android:id="@+id/item2" android:title="菜单2" android:orderInCategory="6" android:icon="@drawable/menu_backhome"></item></group> <group android:id="@+id/unlogin" android:menuCategory="container"> <item android:id="@+id/item3" android:title="菜单3" android:orderInCategory="5" android:icon="@drawable/menu_quit"></item> <item android:id="@+id/item4" android:orderInCategory="4" android:title="菜单4" android:icon="@drawable/menu_setting_center"></item> </group></menu>
则在Activity里这样写:
@Override public boolean onCreateOptionsMenu(Menu menu){ MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.option_menu_1, menu); return true; }
其次,如何响应菜单上的点击动作
我们只需要重写onOptionsItemSelected(MenuItem item)这个方法就可以做响应的操作了。代码如下:
@Override public boolean onOptionsItemSelected(MenuItem item){ Toast.makeText(this, item.getOrder()+","+item.getTitle(), Toast.LENGTH_LONG).show(); return true; }
最后,在设置Menu的时候,有些属性值得一说。
第一个,Item的属性:menuCategory,它的取值一共有四个。我们可以在xml文件中写上android:menuCategory=”container”,也可以在用代码构建Menu时这样写:menu.add(groupid,itemid,Menu.CATEGORY_CONTAINER,title);四个取值的具体内容可以参见API中Menu的静态属性部分。那这四个分类是有什么用的呢?根据API资料,这个分类应该是跟菜单展示时各项的排序有关系的。但是我试过不同的菜单项设不同的MenuCategory值,但结果并不是预期的那样,预期是:数值越小的越靠上,靠左。但有一点可以确认,MenuCategory不设值(默认为0)时,菜单项是排在最左上角的。
第二个,Item的属性:orderInCategory,它的取值是0-0xffff之间的整数。也是设置排序顺序的。它跟第一个属性有啥关系呢?就是一个菜单项最终的Order值是MenuCategory值与orderInCategory值相加的结果。
还有Group分组,在xml创建Menu时,已经演示了Group的使用。我们使用Group是为了方便处理那些拥有相同特征的菜单项。比如有几个菜单是要登录了才可以使用,或者部分菜单项前面要加选择框,那我们就可以将它们放到一组,后面对这一个组进行操作就行了。
转载自:http://blog.csdn.net/nairuohe/article/details/6536702
- Android Menu 之 optionsMenu 详解
- Android Menu 之 optionsMenu 详解
- Menu 菜单之OptionsMenu
- Android Menu——OptionsMenu
- Android Menu--退出,关于--OptionsMenu
- android学习之OptionsMenu
- android之menu详解
- Android中的Menu功能菜单-OptionsMenu[选项菜单]
- Android Menu 之 ContextMenu 详解
- Android按键之Menu详解
- OptionsMenu Android
- android之OptionsMenu功能菜单的使用
- Android——菜单之选项OptionsMenu
- Android进阶之OptionsMenu+ContextMenu+subMenu
- Android基础之Menu操作详解
- android Menu详解
- android Menu菜单详解
- Android menu菜单详解
- 汇编---水仙花数算法
- centos 安装mysql
- spring问题集锦
- AYITACM2016省赛第四周F-敌兵布阵(线段树)
- 关于EditText的输入数字校验的问题
- Android Menu 之 optionsMenu 详解
- Android 屏幕分辨率 计算单位
- Max Script|控制摄像机
- Xcode无证书打IPA包
- 基于多步迭代算法的数字预失真技术
- 流量监控工具类
- Android之使用Pull解析Xml数据
- 开始写博客
- 双线dp ——牧场物语