在一个android创建菜单menu时,需要重写Activity的onCreateOptionsMenu(Menu menu)方法,这个方法只在第一次创建的时候调用一次,所以如果之后想对menu进行动态的修改,那么就不要再对onCreateOptionsMenu做什么手脚了。

      于是就要用到onPrepareOptionsMenu(Menu menu)方法了。onPrepareOptionsMenu与onCreateOptionsMenu不同的是,他在每次按下menu硬键之前会被调用,所以可以在这里动态的改变menu。如果需要创建一个全新的菜单,那么可以在

public boolean onPrepareOptionsMenu(Menu menu) {
     super.onPrepareOptionsMenu(menu);
     menu.clear();
   
     cb=(CheckBox)findViewById(R.id.my_mms_item_checkbox);
   menu.add(0, MENU_01, 0, "新建短信").setIcon(R.drawable.menu_new_mms);
   Log.d(TAG,"cb.getVisibility():"+cb.getVisibility());
   if(cb.getVisibility()==View.GONE)
    menu.add(0, MENU_02, 0, "多选").setIcon(R.drawable.mms_multiple);
   else
   {
    menu.add(0, MENU_03, 0, "取消多选").setIcon(R.drawable.mms_multiple);
    menu.add(0, MENU_04, 0, "选择全部").setIcon(R.drawable.mms_multiple);
   }
     return true;
  }

如果没有clear而直接add的话,那么菜单中菜单项是会“追加”的,这样,随着你不停的点menu键,菜单项就不停的增加。

 

另外,android系统默认的菜单样式是支持最多3个一行,如果有4项就每行2个有2行...如果想自定义样式,可以使用xml文件定义样式。

更多相关文章

  1. Android Adapter 接口中几个方法的研究
  2. 实现android图像识别的几种方法
  3. android 测试项目出现 Test run failed: No test results 的解决
  4. android TextView 的setTextSize方法的使用
  5. Android Drawer(抽屜)的使用(二)常用的方法:
  6. Android 退出应用程序的实现方法
  7. 关于Android LinearLayout添加分隔线的方法

随机推荐

  1. Android(安卓)Wear Preview- 创建通知(Cre
  2. 2013.12.03 ——— android onPrepareOpt
  3. android 正则表达式
  4. Android中的BinderProxy.finalize()或Pla
  5. android 开源项目推荐
  6. android 悬浮窗口
  7. Android(安卓)Studio中配置代码和资源的
  8. Android(安卓)导入多个外部静态链接库, 进
  9. 安卓的真机测试minsdk(API19)>DeviceSdk(1
  10. android 自定义弹出窗口