参考:http://www.linuxidc.com/Linux/2011-09/43281.htm
子菜单就是将相同功能的分组进行多级显示的一种菜单。
创建子菜单的步骤:
1、 覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法来添加子菜单
2、 调用SubMenu的add()方法,添加子菜单
3、 覆盖onContextItemSelected()方法,响应子菜单的单击事件
至于onCreateOptionsMenu()方法在前面已做过介绍,现在来看下Menu的addSubMenu()方法,与add()方法一样它有四个重载方法,参数也同出一辙。在这也就不再多说明了
public abstractSubMenuaddSubMenu(int groupId, int itemId, int order,CharSequencetitle)
public abstractSubMenuaddSubMenu(int groupId, int itemId, int order, int titleRes)
public abstractSubMenuaddSubMenu(CharSequencetitle)
public abstractSubMenuaddSubMenu(int titleRes)
这四个函数的返回对象都是SubMenu,那么我们就来看下SubMenu吧,随便来了解它的一些属性及方法:
SubMenu是实现Menu的
比较常用的方法有:setHeaderIcon()、setHeaderTitle()
下面通过两个实例来熟悉下SubMenu
实例1:
- packagecom.jiahui.activity;
- importjava.lang.reflect.Field;
- importAndroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.view.Menu;
- importandroid.view.MenuItem;
- importandroid.view.SubMenu;
- publicclassSubMenuDemoActivityextendsActivity{
- privatestaticfinalintITEM1=Menu.FIRST;
- privatestaticfinalintITEM2=Menu.FIRST+1;
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- publicbooleanonCreateOptionsMenu(Menumenu){
- SubMenufile=menu.addSubMenu("文件");
- SubMenuedit=menu.addSubMenu("编辑");
- file.add(0,ITEM1,0,"新建");
- file.add(0,ITEM2,0,"打开");
- //常规方法一级菜单
- menu.add(0, MENU_RESET, 0, R.string.reset);
- returntrue;
- }
- publicbooleanonOptionsItemSelected(MenuItemitem){
- switch(item.getItemId()){
- caseITEM1:
- setTitle("新建文件");
- break;
- caseITEM2:
- setTitle("打开文件");
- break;
- }
- returntrue;
- }
- }
效果: