Android菜单操作之创建并响应菜单

2019-12-10 18:16:53丽君
易采站长站为您分析Android菜单操作之创建并响应菜单的相关资料,如何使用代码创建菜单项,给菜单项分组,及各种响应菜单事件的方法,需要的朋友可以参考下  

上一篇《学习理解Android菜单Menu操作》简单介绍了一下Android的菜单,今天让我们看一下如何通过代码创建和响应最常用的选项菜单(options menu)。

一、创建options menu

之前提到,Android的activity已经为我们提前创建好了android.view.Menu对象,并提供了回调方法onCreateOptionsMenu(Menu menu)供我们初始化菜单的内容。该方法只会在选项菜单第一次显示的时候被执行,如果你需要动态改变选项菜单的内容,请使用 onPrepareOptionsMenu(Menu)。

@Override
publicboolean onCreateOptionsMenu(Menu menu) {
 // 调用父类方法来加入系统菜单
 // 虽然目前android还没有系统菜单,但是为了兼容到以后的版本,最好加上
super.onCreateOptionsMenu(menu);
 
 // 添加菜单项(多种方式)
 // 1.直接指定标题
 menu.add("菜单项1");
 // 2.通过资源指定标题
 menu.add(R.string.menuitem2);
 // 3.显示指定菜单项的组号、ID、排序号、标题
 menu.add(
  1,  //组号
  Menu.FIRST, //唯一的ID号
  Menu.FIRST, //排序号
"菜单项3"); //标题
 
 // 如果希望显示菜单,请返回true
returntrue;
}

上面的代码演示了添加菜单项的3种方法,下面解释下第三种方法add(int groupId, int itemId, int order, CharSequence title)。其中,第一个参数是组号,android中你可以给菜单分组,以便快速地操作同一组的菜单。第二个参数指定每个菜单项的唯一ID号,你可以自己指定,也可以让系统来自动分配,在响应菜单时你需要通过ID号来判断哪个菜单被点击了。因此常规的做法是定义一些ID常量,但在android中有更好的方法,就是通过资源文件来引用,这个之后介绍。第三个参数代表菜单项显示顺序的编号,编号小的显示在前面。

二、给菜单项分组

@Override
publicboolean onCreateOptionsMenu(Menu menu) {
 super.onCreateOptionsMenu(menu);
 // 添加4个菜单项,分成2组
int group1 =1;
 int gourp2 =2;
 menu.add(group1, 1, 1, "item 1");
 menu.add(group1, 2, 2, "item 2");
 menu.add(gourp2, 3, 3, "item 3");
 menu.add(gourp2, 4, 4, "item 4");
 // 显示菜单
returntrue;
}