您的位置:首页 > 移动开发 > Android开发

Android开发之Menu的应用

2012-12-27 11:25 127 查看
Android中有三种类型的菜单(Menu),一种是选项菜单,即按下手机的menu键在底部弹出来的菜单,一种是上下文菜单,即长按屏幕弹出来的菜单,还有一种是子菜单,子菜单是可以被添加到其他菜单上面的菜单,当我们的菜单有很多的时候,需要将菜单分类,一类就是一个子菜单。
首先介绍下选项菜单的用法




图1



第一步,按下menu键弹出选项菜单,必须重写Activity的onCreateOptionsMenu(Menu
menu)方法

public boolean onCreateOptionsMenu(Menu menu)
{
 
super.onCreateOptionsMenu(menu);
  int MENU_ONE =
menu.FIRST;
  int MENU_TWO = menu.FIRST +
1;
  int MENU_THREE = menu.FIRST +
2;
  int MENU_FOUR = menu.FIRST +
3;
  int MENU_FIVE = menu.FIRST +
4;
  int MENU_SIX = menu.FIRST +
5;
  int MENU_SEVEN = menu.FIRST +
6;
  int MENU_EIGHT = menu.FIRST +
7;
 //设置数字快捷键
 menu.add(0,MENU_ONE,0,"菜单一").setIcon(R.drawable.one).setNumericShortcut('1');
 
menu.add(0,MENU_TWO,0,"菜单二").setIcon(R.drawable.two);
  SubMenu subMenu =
menu.addSubMenu("搜索...");
 
subMenu.setIcon(R.drawable.find);
  subMenu.add(0, 899, 0,
"本地");
  subMenu.add(0, 890, 0,
"网络");
 
menu.add(0,MENU_THREE,0,"菜单三").setIcon(R.drawable.three);
 
menu.add(0,MENU_FOUR,0,"菜单四").setIcon(R.drawable.four);
 
menu.add(0,MENU_FIVE,0,"菜单五").setIcon(R.drawable.five);
 
menu.add(0,MENU_SIX,0,"菜单六").setIcon(R.drawable.six);
 
menu.add(0,MENU_SEVEN,0,"菜单七").setIcon(R.drawable.seven);
 
menu.add(0,MENU_EIGHT,0,"菜单八").setIcon(R.drawable.eight);
  return true;
}

 以上的代码中包含了子菜单的用法,
 由此段代码来实现,subMenu
和普通的菜单项没啥大地区别,点击它后会弹出子菜单,如图2

 SubMenu subMenu =
menu.addSubMenu("搜索...");

 subMenu.setIcon(R.drawable.find);
 subMenu.add(0,
899, 0, "本地");
 subMenu.add(0,
890, 0, "网络");

 



 
     
     
     
     
     
     
    图 2

不管是munu还是submenu的add方法,第二个参数都表示该item的唯一标识,用户按下某一个选项之后,程序就会根据唯一标识做出相应的处理,这里,就必须重写Android的另外一个方法

public boolean onOptionsItemSelected(MenuItem item)
{
super.onOptionsItemSelected(item);
switch(item.getItemId()){
case MENU_ONE:。。。
   
     
     
case MENU_ONE:。。。
   
     
     
default:break;
}
return true;
}
比较简单,不再赘述!

上下文菜单的用法与选项菜单的用法类似,这里贴出关键代码

public void onCreateContextMenu(ContextMenu menu,
View v,
ContextMenuInfo menuInfo) {
Toast.makeText(MainActivity.this, "创建了上下文菜单",
1).show();
menu.add(0, 1, 0, "新建");
menu.add(0, 2, 0,
"打开").setIcon(R.drawable.icon);
super.onCreateContextMenu(menu, v,
menuInfo);
}

public boolean onContextItemSelected(MenuItem item)
{
switch(item.getItemId()){
case 1:
Toast.makeText(MainActivity.this,"新建",
1).show();
// ...
break;
case 2:
Toast.makeText(MainActivity.this,"打开",
1).show();
// ...
break;
}
return
super.onContextItemSelected(item);
}

到此,有关菜单的内容介绍完毕!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: