android menu 实现动态修改menu
在一个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文件定义样式。
最后更新:2017-04-02 06:51:58
上一篇:
API Demos 2.3 学习笔记 (12)-- Views->Rating Bar
下一篇:
java.util.ConcurrentModificationException异常 解决方法
什么样的网站建设公司才是值得信赖的?
OBTAINING SPRING 3 ARTIFACTS WITH MAVEN
深度炼丹指北:从“入坑”到“放弃”
sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
阿里研究院崔瀚文:创新要素观该变了!
发送邮件程序报错454 Authentication failed以及POP3和SMTP简介
【转自百度知道】关于const int *的解释
我的另一个博客地址
态势感知将DDOS扼杀在摇篮中:涉及数千台PostgreSQL服务器
Request、Request.Params、Request.QueryString、Request.form的区别