Android中创建子菜单的步骤:
1、覆盖Activity中的onCreateOptionMenu()方法,调用Menu的addSubMenu()方法添加子菜单。
2、调用SubMenu的add方法,添加子菜单。
3、覆盖onContextItemSelected()方法,响应子菜单。
来看个小例子:
package com.yangzi.submenu; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; public class MainActivity extends Activity { //子菜单编号 private static final int ITEM1 = Menu.FIRST; private static final int ITEM2 = Menu.FIRST+1; private static final int ITEM3 = Menu.FIRST+3; private static final int ITEM4 = Menu.FIRST+4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /* * 覆写onCreateOptionMenu方法,添加菜单,及子菜单 * * */ @Override public boolean onCreateOptionsMenu(Menu menu) { //添加菜单选项 SubMenu file = menu.addSubMenu("文件"); SubMenu edit = menu.addSubMenu("编辑"); //添加子菜单选项 /* * add方法的参数说明: * 参数一:group ID(int) :组ID,用于标示该子选项属于哪一个组 * 参数二:item ID(int) :子选项ID,用于标示该子选项 * 参数三:order ID(int): 显示顺序,用于标示该子选项显示顺序,默认为0,表示按添加顺序显示 * 参数四:title (String): 用于定义该子选项的显示文字 * * */ file.add(0,ITEM1,0,"新建"); file.add(0,ITEM2,0,"打开"); edit.add(1,ITEM3,0,"复制"); edit.add(1,4,ITEM4,"粘贴"); return true; } /* * 覆写该方法,添加相应的菜单相应事件 * * */ @Override public boolean onOptionsItemSelected(MenuItem item) { /* * 根据选择的子选项(通过item ID来区分),进行不同的响应 * * 这里使用的颜色资源要在res/values文件夹内的color.xml文件中声明 * * */ switch (item.getItemId()) { case ITEM1: setTitle("新建文件"); break; case ITEM2: setTitle("打开文件"); break; case ITEM3: setTitle("复制编辑"); break; case ITEM4: setTitle("粘贴编辑"); default: break; } return true; } }
自己动手试试,看看效果吧!