一、菜单的新建
菜单的新建有两种方式:代码方式和布局文件方式。无论是哪种方式,都需要重写onCreateOptionsMenu(...)方法
1、代码方式
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0,MENU_ID_NEW,0,"新建");
menu.add(0,MENU_ID_DELETE,0,"删除");
SubMenu subMenu = menu.addSubMenu("子菜单");
subMenu.add(1,MENU_ID_SUB1,0,"子菜单1");
subMenu.add(1,MENU_ID_SUB2,0,"子菜单2");
return super.onCreateOptionsMenu(menu);
}
2、xml文件方式
1)在/res/menu/先新建你所要使用的布局文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_xml_zzt"
android:title="章泽天"
android:icon="@drawable/b"
/>
<item
android:id="@+id/menu_xml_delete"
android:title="删除"
android:icon="@android:drawable/ic_menu_delete"
/>
<item android:id="@+id/menu_xml_sub"
android:title="子菜单"
>
<menu>
<item
android:id="@+id/menu_xml_sub1"
android:title="子菜单11"
/>
<item
android:id="@+id/menu_xml_sub2"
android:title="子菜单22"
/>
</menu>
</item>
</menu>
2)重写onCreateOptionsMenu(...)方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater mInflater = getMenuInflater();
mInflater.inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
二、点击事件的处理
无论是通过代码方式来实现菜单还是通过布局文件的方式来实现菜单,其点击事件的处理都是一样的,即都是通过重写onOptionItemsSelected(...)方法来实现
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case MENU_ID_NEW :
Toast.makeText(this, "您选择了: " + item.getTitle(), 1).show();
break;
case MENU_ID_DELETE :
Toast.makeText(this, "您选择了: " + item.getTitle(), 1).show();
break;
case MENU_ID_SUB1 :
Toast.makeText(this, "您选择了: " + item.getTitle(), 1).show();
break;
case MENU_ID_SUB2 :
Toast.makeText(this, "您选择了: " + item.getTitle(), 1).show();
break;
default:
Toast.makeText(this, "你选择了: " + item.getTitle(), 1).show();
break;
}
return super.onOptionsItemSelected(item);
}