資源描述:
《Android開發(fā)指南-用戶界面-創(chuàng)建菜單》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、最新歷史版本:Android開發(fā)指南■用戶界面■創(chuàng)建菜單創(chuàng)建菜單CreatingMenus菜單是任何應(yīng)用程序的一個重要部分,提供了透露應(yīng)用程序功能和設(shè)置的通用接口oAndroid為開發(fā)者提供了一個簡單的編程接口來實現(xiàn)各種條件下的標(biāo)準(zhǔn)化應(yīng)用程序菜單。Android提供了三種基礎(chǔ)菜單類型:選項菜單OptionsMenu這是一個活動的主菜單。通過按下設(shè)備菜單鍵來顯示它。選項菜單包含兩組菜單項:圖標(biāo)菜單IconMenu這個是當(dāng)用戶按下菜單鍵時最初出現(xiàn)屏幕下方的item集合。它支持最多6個菜單項。只有這些菜單支持圖標(biāo)而且這些菜單并不支持checkb
2、oxes或者radiobuttons。擴展菜單ExpandedMenu這是通過按“更多”菜單顯現(xiàn)出來的一個豎向的項冃列表。它僅當(dāng)圖標(biāo)菜單過多時存在而幾是由6個以及其它選項菜單組成。上下文菜單ContextMenu這是一個浮動菜單列表,通常在你長時間按在一個視圖上吋出現(xiàn)(比如一個列表項)子菜單Submenu這是一個浮動菜單列表,通過在選項菜單或上下文菜單選擇菜單項顯露出來。不支持嵌套子菜單?;豀錄選項菜單OptionsMenu這個選項菜單通過按設(shè)備菜單鍵打開。打開后,出現(xiàn)圖標(biāo)菜單,可包含6個菜單項。如果添加多于6個菜單項,多出的部分將通過“
3、更多”菜單項在擴展菜單中顯示。擴展菜單項在多于6個菜單項時自動添加。選項菜單應(yīng)該包含應(yīng)用程序的革本功能以及任何必要的瀏覽項(例如,返冋桌面或應(yīng)用程序設(shè)置)。你還可以通過增加子菜單Submenus來組織主題和包含額外的菜單功能。當(dāng)菜單第一次被打開時,系統(tǒng)會調(diào)用活動onCreateOptionsMenu()冋調(diào)函數(shù)。重寫該方法并生成傳遞給你的這個菜單對象。你可以通過擴充定義在XML文件中的一個菜單資源或者通過為你想要的每一個菜單項調(diào)用add()方法生成這個菜單。這個方法增加一個菜單項Menuitem,并返回新創(chuàng)建的対象。你可以用返回的Menu
4、ltem來設(shè)置附加屬性如圖標(biāo),快捷鍵,意圖以及這個菜單項的其它設(shè)置。有多個add()方法。通常,你會使用接受一個itemld參數(shù)的那個。這是一個唯一的整數(shù),允許你在回調(diào)函數(shù)屮識別這個iterrio當(dāng)個菜單項從選項菜單中被選擇吋,你會接收到?個onOptionsltemSelected()冋調(diào)。這個回調(diào)傳給你選中的Menuitem。你可以通過請求itemld:getltemld()來識別它,這將返回add()方法分配的整數(shù)。一旦你識別了這個菜單項,就可以采取合適的動作。卜?面是一個活動里的例子,其中我們創(chuàng)建了一個選項菜單并處理菜單項的選擇:
5、復(fù)制到剪貼板Java代碼1./*Createsthemenuitems*/publicbooleanonCreateOptionsMenu(Menumenu){menu.add(0,MENU_NEW_GAME,0,"NewGame");menu.add(0,MENU_QUIT,0,"Quit");returntrue;}/*Handlesitemselections*/publicbooleanonOptionsItemSelected(MenuItemitem){switch(item.getltemld()){caseMENU_NEW
6、_GAME:newGame();returntrue;caseMENU_QUIT:quit();returntrue;}returnfalse;}
7、2.這個add()方法有四個參數(shù):groupld,itemld,order,和title。groupld允許你關(guān)聯(lián)這個菜單到一個菜單組中(更多參見下面的菜單紐Menugroups)-這個例中,我們忽略掉它oitemld是用來識別菜單項的唯一的整數(shù),在回調(diào)函數(shù)中使用。order允許我們定義菜單的顯示順序■缺省情況下,它們以添加吋的順序排列。title當(dāng)然是菜單的名字(可以是一個字符串資源,為了本
8、地化更加方便,建議你使用資源)。提示:如果你有-?些可以以一個標(biāo)題歸類的菜單項,考慮以子菜單Submenu的方式組織它們。增加圖標(biāo)Addingicons圖標(biāo)也可以通過setIcon()函數(shù)被添加到菜單項中。復(fù)制到剪貼板Java代碼1.menu.add(0,MENU_QUIT,0,"Quit").setIcon(R.drawable.menu_quit_icon);修改菜單Modifyingthemenu如果有些時候你想在選項菜單被打開的時候re-write它,可以overrideonPrepareOptionsMenu()方法,該方法在每
9、一次菜單被打開的吋候調(diào)用。它將傳遞給你菜單對象,就像回調(diào)一樣。這對于根據(jù)應(yīng)用程序狀態(tài)調(diào)整菜單選項很有用。注意:當(dāng)改變菜單項時,根據(jù)當(dāng)前選擇的item來這樣做是一個不好的行為。記住,在觸摸模式中