AndroidMenu分为三类:
1、OptionMenu(选项菜单)
2、ContextMenu(上下文菜单)
3、SubMenu(子菜单)
下面我们来学习一下OptionMenu(选项菜单):
当用户在触摸装有andorid os 的手机上的menu键时,弹出的界面就是就是optionMenu(选项菜单)。
实现自定义的optionMenu,我们需要重写onCreateOptionMenu(Menu menu)方法:
@Override
public boolean onCreateOptionMenu(Menu menu){
//Inflate the menu;this add items to the action if it is persent.
getMenuInflater().inflater(R.menu.main,menu);
//上面的代码是在重写onCreateOptionMenu(Menu menu)方法时,自动生成的。
//功能:将指定样式表中的选项模板,添加到菜单中。
//getMenuInflater().inflater(int id,Menu menu);
// id:该参数用于通过R类找到样式表
// menu:该参数用于将样式表中的选项模板显示出来
return true
}
通过getMenuInflater().inflater(int id,Menu menu)自动生成的menu菜单项
mian.xml文件内容(文件位置:/ser/menu/mian.xml):
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.sendhttpresponse.MainActivity" >
<item
android:id="@+id/action_settings" <!--设置id:用于查找该选项 -->
android:orderInCategory="100" <!--设置显示顺序:一般是以0开始 -->
android:icon="@drawable/item_icon" <!--设置选项的图标,竟在该选项显示在actionBar中时,才会显示改图标 -->
android:title="@string/action_settings"/> <!--设置选项显示的内容:从资源文件中获取 -->
android:showAsAction="never" <!--设置显示方式:never:一直显示在OptionMenu中 -->
<!-- 关于showAsAction的常用属性值介绍:
never:一直显示在menu中。
always:一直显示在ActionBar中。
ifRoom:如果ActionBar中有空余的空间,那么就显示在ActionBar中显示。否则就显示在menu菜单中
-->
</menu>
当程序右上角有空间时,那么便将选项添加到右上角显示。(android:showAsAction="ifRoom")
当选项设置了icon时,并在右上角显示。那么将显示指定icon。
参数功能:int group :选项属于那个组
int itemId :选项的编号,用于查找该选项。非常重要
int order : 用于确定选项的排列顺序
String titleRes : 指定选项显示的内容
实例代码:
private final static int MENU_GROUP = 0;
private final static int MENU_ID = 0;
private final static int MENU_ORDER = 0;
private final static String MENU_TITLE = "Menu";
@Override
public boolean onCreateOptionMenu(Menu menu){
menu.add(MENU_GROUP ,MENU_ID ,MENU_ORDER ,MENU_TITLE );
menu.add(MENU_GROUP + 1,MENU_ID + 1,MENU_ORDER ,MENU_TITLE + 1);
menu.add(MENU_GROUP + 2,MENU_ID + 2,MENU_ORDER ,MENU_TITLE + 2);
menu.add(MENU_GROUP + 3,MENU_ID + 3,MENU_ORDER ,MENU_TITLE + 3);
return true
}
效果图