使用说明:
- 覆盖Activity中的onCreateOptionMenu()方法,调用Menu的addSubMenu()方法添加子菜单。
- 调用SubMenu的add方法,添加子菜单。
- 覆盖onContextItemSelected()方法,响应子菜单。
效果描述
一个子菜单项:文件操作,点击文件操作弹出来一个菜单:新建,打开,退出,保存。前两个是复选框,后两个是按钮按钮,并设置默认勾选。
代码实现:
package com.example.menudemo;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.SubMenu;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setHasOptionsMenu(true);
}
private void setHasOptionsMenu(boolean b) {
// TODO Auto-generated method stub
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.main, menu);
//添加子菜单
SubMenu fileSubMenu=menu.addSubMenu(1,1,2,"文件操作");
//设置子菜单的图像
fileSubMenu.setHeaderIcon(R.drawable.ic_launcher);
//创建两个复选框样式的子菜单,并将第一个复选框默认勾选
MenuItem newMenuItem=fileSubMenu.add(1, 2, 2, "新建");
MenuItem openMenuItem=fileSubMenu.add(1, 3, 3, "打开");
newMenuItem.setCheckable(true);
openMenuItem.setCheckable(true);
newMenuItem.setChecked(true);
//创建两个单选按钮样式的子菜单,并将第一个单选按钮默认勾选
MenuItem exitMenuItem=fileSubMenu.add(2, 4, 4, "退出");
MenuItem saveMenuItem=fileSubMenu.add(2, 4, 4, "保存");
exitMenuItem.setChecked(true);
//将后两个子菜单设置为选项按钮类型,根据分组来设置
fileSubMenu.setGroupCheckable(2, true, true);
return true;
}
public boolean onOptionsItemSelected(MenuItem item)
{
//子菜单操作必不可少的一处
return super.onOptionsItemSelected(item);
}
}