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);
}
到此,有关菜单的内容介绍完毕!
首先介绍下选项菜单的用法
图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);
}
到此,有关菜单的内容介绍完毕!
相关文章推荐
- android应用开发揭秘examples_04-13笔记(Menu的2种实现方式)
- Android应用开发之Menu
- Android应用开发基础篇(10)-----Menu(菜单)
- 【Android应用开发技术:用户界面】Menu
- Android应用开发基础篇(10)-----Menu(菜单)
- android应用开发详解(二)-----------Layout和Menu的使用
- Android应用开发基础篇(10)-----Menu(菜单)
- Android应用开发系列课程--自定义Menu
- Android 应用开发(第2章)---如何增加menu菜单
- android应用开发学习笔记--游戏开发
- Android 应用界面开发笔记 自定义控件与Handler -待更新
- 用Visual Studio 2010开发Android应用
- 从零开始--系统深入学习android(理论-开发前准备-10.一个好的应用应该具备哪些方面-10.1易于访问)保留
- android 应用开发揭秘,ndk使用过程总结
- Android OpenGL ES 开发教程(7):创建实例应用OpenGLDemos程序框架
- Android应用开发(二):Activity生命周期剖析以及如何启动新的Activity或网页
- Android应用开发——*.9.png及制作
- Android入门开发之设置Toast与Menu的使用
- Android开发应用异步检查更新代码
- Android开发--地图与定位应用--申请Google地图服务(API Key)