Android的菜单分为三种类型:选项菜单(Option Menu)、上下文菜单(Context Menu)、子菜单(Sub Menu)。

一、选项菜单

  用户点击设备上的菜单按钮(Menu),触发事件弹出的就是选项菜单。选项菜单最多只有六个,超过六个第六个就会自动显示为“更多”选项,点击后以弹出的方式来展示。

  Menu的add方法可以添加一个菜单项,API里列出了四种add重载形式,最多的一个有四个参数:

  private MenuItem add(int groupId,int itemId,int order,CharSequence title);

  private MenuItem add(inte groupId,int itemId,int order,int titleRes);

  • groupId:菜单项的分组Id标识,为整数。将菜单的选项进行分组,这样就把相似功能的菜单项分为同一组,然后可以通过调用setGroupCheckable,setGroupEnabled,setGroupVisible来设置菜单属性,而无需单独设置。
  • itemId:当前菜单项的Id标识,为整数。
  • order:菜单显示顺序标识,按升序从左到右、从上到下进行显示。为0和正整数,不能为负数。
  • title或titleRes:每个菜单项的标题。

  创建方法:

  1.覆写Activity的onCreateOptionsMenu(Menu menu)方法,当我们第一次打开菜单时调用且只调用一次。

  2.调用Menu的add()方法添加菜单选项(MenuItem),可以调用MenuItem的setIcon()方法为菜单项设置图标。

  3.当菜单项(MenuItem)被选中时,覆写Activity的onOptionsItemSelected()方法响应事件。

二、上下文菜单

  当用户长按View(如Button、EditText、TextView等)时弹出的菜单就是上下文菜单,上下文菜单必须注册到指定的View上才能显示。举个例子:当我们在编辑短信的时候,长按2s短信编辑框(就是个EditText)就会弹出一个菜单,比如有“复制”、“粘帖”、“输入法”等选项,这个弹出的菜单就是上下文菜单。

  我们还可通过setHeaderTitle()以及setHeaderIcon()方法为上下文菜单设置标题栏标题以及图标。

  创建方法:

  1.覆写Activity的onCreateContextMenu()方法,调用Menu的add方法添加菜单项MenuItem

  2.调用registerForContextMenu()方法,为VIew注册上下文菜单

  3.覆写onContextItemSelected()方法,响应菜单单击事件

三、子菜单

  子菜单就是将相似功能的分组进行多级显示的一种菜单,例如:windows的“新建”菜单就包括“新建文件夹”、“新建快捷方式”、“新建文本文档”等子菜单。

  创建方法:

  1.覆写Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法添加选项菜单(Option Menu),但是此选项菜单包含下一级的子菜单。

  子菜单中不能像选项菜单一样给每一个MenuItem设置图片,只能在子菜单的顶部显示图像。 

 1  @Override 2         public boolean onCreateOptionsMenu(Menu menu) 3         { 4             super.onCreateOptionsMenu(menu); 5             menu.add(0,1,1,"菜单1"); 6             SubMenu file=menu.addSubMenu(0, 2, 2, "文件");
         file.setHeaderTitle("我的文件");//设置子菜单的标题栏标题
         file.setHeaderIcon(android.R.drawable.***);//设置子菜单标题栏图标
7 MenuItem open=file.add(0, 3,3, "打开"); 8 open.setCheckable(true); 9 open.setChecked(true);10 MenuItem fileNew=file.add(1,4,4,"新建");11 fileNew.setChecked(true);12 file.add(1, 4, 4,"删除");13 file.setGroupCheckable(1, true, true);//将groupId为1的MenuItem设置为选项按钮类型14 return true;15 }

  当点击设备上的Menu按钮后,会在屏幕下方弹出两个选项菜单:“菜单1”和“文件”,然后再单击“文件”时,就会在屏幕中间弹出标题为“我的文件”的子菜单窗口。
  2.调用SubMenu的add()方法,添加子菜单项

  3.调用onCreateItemSelected()方法,响应菜单单击事件

四、Activity有三种响应菜单项单击事件的方法:

  这里没有弄明白,以后用到再看。

更多相关文章

  1. Android中使用apache commons-net发送后台邮件的方法
  2. android 完全区分double-tap 与 singal-tap 的方法
  3. Android获取其他包的Context实例然后干坏事
  4. Android音频播放
  5. android集成友盟推送,点击通知,先启动应用,然后再跳指定 界面;应用前
  6. Android(安卓)中点击两次返回键才退出
  7. ADB 自制万用驱动方法,解决找不到驱动问题,独家秘笈
  8. Android(14) ArrayAdapter(数组适配器)的三种方法
  9. 详解Android的服务

随机推荐

  1. 【Android】Android应用开发案例教程
  2. 解决TextView中MaxLines与ellipsize=end
  3. Android之——AIDL深入
  4. 构建Android的交叉编译器、用ndk编译移植
  5. 简单的Android(安卓)UI组件使用
  6. 基于Android的Linux内核的电源管理
  7. Android开发设置Activity全屏与不全屏的
  8. android app请求获取root权限
  9. Android之怎么隐藏EditText光标和自动显
  10. android机型适配终极篇