在一个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截屏截图的几种方法总结
  2. Android中软键盘弹出时底部菜单上移问题
  3. android tips—NumberPicker,DataPicker,TimePicker样式修改
  4. Ubuntu adb devices : no permissions 解决方法
  5. Android建立对话框基本的几种方法

随机推荐

  1. 【【【常用的ubuntu第三方工具及android
  2. CSDN精选Android开发博客
  3. Android 中文 API (35) —— ImageSwitcher
  4. Android最佳性能实践(一)——合理管理内
  5. ubuntu NDK 的安装
  6. My Android成长之路(四)——【xml解析之X
  7. Android EditText不弹出软键盘
  8. Sending email without user interaction
  9. android 使用Lottie实现Android动画
  10. Android中onContextItemSelected不响应