菜單是Activity的一個重要組成部分。它為用戶操作提供了很爽的途徑。Android提供了一個簡單的框架來向程序中添加標准菜單 .
共有三種菜單:
選項菜單
一個activity的菜單項們的主要集合。當你按MENU按鈕時(硬件上的)就會出現。如果你的程序跑在 Android 3.0或以上,你可以通過把菜單項作為 "action items"直接放在Actiion Bar上來提供快速選擇能力。
彈出菜單
一列浮動的菜單項們,當用戶對一個注冊了彈出菜單的View按住不放時就會出現。
子菜單
也是一列浮動的菜單項們,當用戶點擊一個包含嵌入菜單的菜單項時出現。
本文檔闡明怎樣創建各類型的菜單,怎樣使用XML來定義菜單的內容以及如何在Activity中定義回調函數來響應菜單項。
創建一個菜單資源
你需要在一個XML 菜單資源中定義一個菜單而不是在代碼中,然後在代碼中inflate這個菜單資源。使用菜單資源來定義菜單是一個很佳的做法,因為這樣可以使界面與代碼分離。並且在XML中更容易設計你的菜單。
要創建一個菜單資源,先在你項目的res/menu/下創建一個XML文件,然後用以下元素建立菜單:
<menu>
定義一個菜單,它是菜單項的容器。 <menu>必須是文件的根節點,其內部可包含一個或多個<item>和<group> 元素。
<item>
創建一個菜單項。菜單項中可以繼續包含<menu>元素,此時它就具有了子菜單。
<group>
一個可選的,不可見的,容納<item> 元素的容器。它使你能夠對菜單項進行分類,從而使同類的菜單項共享一些屬性,比如活動狀態,可見狀態等。請看 Menu groups節。
[html]
還有很多可以在<item>中使用的屬性,還包含指定菜單項如何在Action Bar中顯示的屬性。更多關於XML語法和菜單資源屬性的知識,請看 Menu Resource節。
Inflating 一個菜單資源
在 代碼中,使用方法 MenuInflater.inflate()你可以inflate(把一個XML資源轉換為程序中的對象)一個菜單資.例如,下面的代碼在回調方法 onCreateOptionsMenu()中把文件 game_menu.xml inflate成一個菜單對象,從而作為這個Activity的選項菜單使用:
[java]