1、 普通Menu
(1) onCreateOptionsMenu方法
例如:public boolean onCreateOptionsMenu(Menu menu)
{ //增加菜单项
super.onCreateOptionsMenu(menu);
menu.add(0,0,0,"Home").
setIcon(R.drawable.home).
setShortcut('3', 'h');
return true;
}
(2) onPrepareOptionsMenu方法
//添加Menu菜单项
public boolean onPrepareOptionsMenu(Menu menu)
{
menu.add(0, ITEM1, 0, "Insert");
menu.add(0, ITEM2, 0, "Delete");
}
(3) onOptionsItemSelected方法
对Menu菜单项进行监听
public boolean onOptionsItemSelected(MenuItem item)
{
String menuItem = new String();
switch (item.getItemId()) //得到Itemid
{
case ITEM1: menuItem = "Menu Item Insert"; break;
case ITEM2: menuItem = "Menu Item Delete"; break
}
return super.onOptionsItemSelected(item);
}
2、 SubMenu
SubMenu在onCreateOptionsMenu中实现,例如:
// 创建子菜单方法实现
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
menu.add(0, ITEM1, 0, "Add")
.setShortcut('3', 'a')
.setIcon(R.drawable.home);
//创建子菜单,添加子菜单
SubMenu smenu = menu.addSubMenu(1, ITEM2, 0, “SubMenu”);
smenu.add(0, ITEM3, 0,"subMenu1");
smenu.add(0, ITEM4, 0,"subMenu2");
smenu.setHeaderIcon(R.drawable.home);
smenu.setIcon(R.drawable.computer);
return true;
}
点击“SubMenu”后就会出现子菜单,有两个子选项,分别是“SubMenu1”和“SubMenu2”。
3、 Context Menu
长按某个View之后弹出来的菜单。
首先要注册一下,在onCreate方法里,如下代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b1 = (Button) findViewById(R.id.b1);
b2 = (Button) findViewById(R.id.b2);
registerForContextMenu(b1);
registerForContextMenu(b2);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
if(v==b1){
menu.setHeaderTitle("这是1");
menu.setHeaderIcon(R.drawable.calculator);
menu.add(200, 200, 200, "Context Menu 1");
menu.add(200, 201, 201, "Context Menu 2");
}
else if(v==b2){
menu.setHeaderTitle("这是2");
menu.add(300, 300, 300, "C 1");
menu.add(300, 301, 301, "C 2");
}
super.onCreateContextMenu(menu, v, menuInfo);
}
对长击控件子菜单的响应,onContextItemSelected方法
4、 动态Menu
动态菜单就是根据不同的界面有不同的菜单。在onPrepareOptionsMenu方法中实现。
5、 用Xml文件创建Menu
用xml配置文件也可以相当方便地制作菜单。
要res/目录下建一个文件夹,名为menu,下面建一个xml文件,名为menu_xml_file.xml,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="@+id/grout_main">
<item android:id="@+id/menu_1"
android:title="This 1"/>
<item android:id="@+id/menu_2"
android:title="This 2" />
</group>
</menu>
在Activity中覆盖onCreateOptionsMenu(Menu menu)方法,代码如下:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_xml_file, menu);
return true;
}