1.在Android中,菜单被分为三种:
选项菜单 OptionsMenu,上下文菜单 ContextMenu,弹出式菜单 PopupMenu
Android应用中的菜单默认是隐藏的,只有用户点击手机上的Menu键才会显示菜单,这种菜单即为 选项菜单,又称系统菜单。
从android 3.0之后,不再要求手机设备上必须提供MENU键。Android推荐使用ActionBar来代替Menu。
Android系统会自动检测手机设备是否存在物理菜单键,如果没有,显示…(overflow)按钮。
2.Android提供两种创建菜单的方式:
1>在java代码中创建菜单
2>使用xml资源文件创建菜单(res/menu目录下)。优先使用此方法
1>使用Java代码方式创建菜单
创建android项目后,eclipse会在src/包名 / MainActivity.java文件中 自动创建 onCreateOptionsMenu方法
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);//默认把菜单文件填充到menu
return true; // true 表示启动选项菜单
}
我们要做的就是:自定义添加菜单项
MenuItemmenu = menu.add(groupId,itemId,order,title);
//groupId分组 : Menu.NONE 不分组
//ItemId 菜单的标识常量 0x111
//order
//title 菜单标题
//创建选项菜单
@Override
public boolean onCreateOptionsMenu(Menu menu) {//menu 选项菜单
//1 添加菜单项
menu.add(Menu.NONE, 0x111, Menu.NONE, "菜单1");// groupId 分组 itemId 菜单标识常量 title菜单标题
menu.add(Menu.NONE, 0x112, Menu.NONE, "菜单2");// groupId 分组 itemId 菜单标识常量 title菜单标题
menu.add(Menu.NONE, 0x113, Menu.NONE, "菜单3");// groupId 分组 itemId 菜单标识常量 title菜单标题
return true; //表示启动选项菜单 true
}
运行后单击菜单键就可以看到三个我们自己定义的菜单选项:“菜单1”,“菜单2”,“菜单3”;
但是我们的目的是:实现和我们用的手机菜单 相近的功能,步骤:
1.设定每个菜单项的常量(便于后面监听我们使用switch);
2.初始化文本输入框;
3.设置菜单选项;
4.添加事件监听switch;