Android3.0 之前一直使用menu 弹出菜单,optionsMenu的使用方式跟context菜单的使用方式类似,
①创建 系统菜单 onCreateOptionsMenu(Menu menu)
@Override
public boolean onCreateOptionsMenu(Menu menu) {
setIconEnable(menu,true);//让菜单项的图标可见
//根据菜单项的xml文件创建菜单项对象,并把菜单项对象加入到菜单对象中
//参数menu接收的是菜单对象,菜单对象由系统创建
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
② 为菜单添加监听 onOptionsItemListener
//给系统菜单添加点击菜单项时的事件监听
//参数item接收的是被点击的菜单项对象
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//获取被点击的菜单项的id
int id = item.getItemId();
switch(id)
{
case R.id.action_settings:
//显示系统设置界面
startActivity(new Intent(Settings.ACTION_SETTINGS));
break;
case R.id.action_bigFont:
//增大textView的字体
fontSize+=5;
textView.setTextSize(fontSize);
break;
case R.id.action_smallFont:
//缩小textView的字体
fontSize-=5;
textView.setTextSize(fontSize);
break;
}
return super.onOptionsItemSelected(item);
}
③ 解决不显示图标问题 通过反射机制
//为系统菜单项添加图标
//enable为true时,菜单添加图标有效,enable为false时无效。4.0+系统默认无效
private void setIconEnable(Menu menu, boolean enable)
{
try
{
//MenuBuilder.class
Class