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的區別