Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android學習筆記(34):Android菜單

Android學習筆記(34):Android菜單

編輯:關於Android編程

Android的菜單分為三種類型:選項菜單(Option Menu)、上下文菜單(Context Menu)、子菜單(Sub Menu)。

選項菜單(Option Menu):按設備上的菜單按鈕(Menu)會出現的菜單。不支持勾選標記。

上下文菜單(Context Menu):長按某個組件會出現的菜單。不支持菜單項圖標。

子菜單(SubMenu):就是子菜單。不支持菜單項圖標,不支持嵌套子菜單。

Menu類用於添加菜單項和子菜單的方法是add()和addSubMenu():

MenuItem add(CharSequence title):添加一個菜單項

MenuItem add(int groupId, int itemId, int order, int titleRes):添加一個處於groudId組的菜單項

MenuItem add(int titleRes):添加一個菜單項

MenuItem add(int groupId, int itemId, int order, CharSequence title):添加一個處於groudId組的菜單項

SubMenu addSubMenu(int groupId, int itemId, int order, CharSequence title):添加一個處於groudId組的子菜單

SubMenu addSubMenu(int groupId, int itemId, int order, int titleRes):添加一個處於groudId組的子菜單

SubMenu addSubMenu(CharSequence title):添加一個子菜單

SubMenu addSubMenu(int titleRes):添加一個子菜單

 

 

(1)選項菜單的創建方法:

1、重寫Activity的onCreateOptionsMenu(Menu menu)方法。

2、調用Menu的add()方法添加菜單項(MenuItem),可以調用MenuItem的setIcon()方法為菜單項設置圖標。

3、重寫Acitivy的onOptionsMenuSelected()方法為菜單設置事件監聽。

 

(2)子菜單的創建方法:

1、重寫Activity的onCreateOptionsMenu()方法,調用Menu的addSubMenu()方法添加子菜單。

2、調用SubMenu的add()方法,添加子菜單項。

3、重寫onCreateItemSelected()方法,為菜單設置監聽事件。

 

SubMenu類還提供了額外的方法來設置菜單頭的信息:

SubMenu setHeaderIcon(Drawable icon):設置菜單頭的圖標。

SubMenu setHeaderIcon(int iconRes):設置菜單頭的圖標。

SubMenu setHeaderTitle(CharSequence title):設置菜單頭的標題。

SubMenu setHeaderTitle(int titleRes):設置菜單頭的標題。

SubMenu setHeaderView(View view):使用View組件設置菜單頭。

 

(3)上下文菜單的創建方法:

1、重寫Activity的onCreateContextMenu(ContextMenu, View, ContextMenu.ContextMenuInfo)方法,View參數設置的是觸發上下文菜單的組件。

2、調用Menu的add()方法添加菜單項MenuItem

3、重寫onContextItemSelected()方法,為上下文菜單設置事件監聽。

4、調用registerForContextMenu(View)方法,為View組件注冊上下文菜單。

同樣我們可以用setHeaderIcon()、setHeaderTitle()方法為上下文菜單設置圖標、標題。

(4)為菜單項設置事件監聽:

我們重寫Activity的onCreateItemSelected()方法來設置事件監聽,一般我們用switch方法判斷是哪個菜單項被單擊,所以我們需要為每個菜單項設置一個id,以方便判斷。

當然我們還有另一個方法就,就是為每個菜單項綁定監聽器,用setOnMenuItemClickListener()方法,但這樣做是很麻煩的,不推薦。

(5)設置單選菜單項和多選菜單項:

setCheckable(boolean checkable):設置該菜單項可否被勾選。

setGroupCheckable(int group,boolean checkable,boolean exclusive):設置group組的菜單項是否可以被勾選,如果exclu設置為true,那麼該組為單選菜單項。

 

(6)為菜單項設置快捷鍵(現在好像沒什麼用了):

setAlphabeticShortcut(char alphaChar):設置字母快捷鍵。

setNumericShortcut(char numericChar):設置數字快捷鍵。

setShortcut(char numericChar, char alphaChar):同時設置兩種快捷鍵。

 

(7)設置與Activity關聯的菜單項:

用於單擊某個菜單項時可以跳轉到其他Activity。

用setIntent(Intent intent)方法。

 

(8)使用XML文件創建菜單:

創建方法是

1.在res文件下面的menu文件目錄下創建菜單的xml文件。

2.在Activity的onCreateOptionsMenu()方法或onCreateContextMenu()方法中用inflate(int menuRes, Menu menu)方法加載對應資源。

3.重寫Activity相關的事件監聽方法。

 

menu文件夾下的xml有如下的規則:

1.根元素是,沒有多余的屬性。

2.將多個菜單項包裝成一個菜單組。

可以設置如下屬性:

checkableBehavior:菜單項額選擇行為,none(不可選)、all(多選)、single(單選)。

menuCategory:指定菜單項的優先級,container、system、secondary和alternative。

visible:是否可見

enable:是否可用

3.用於定義菜單項,內部可包含,就成了子菜單。

可以設置的屬性如下:

android:id:設置ID

android:title:設置標題

android:icon:設置圖標

android:alphabeticShortcut:設置字母快捷鍵

android:numbericShortcut:設置數字快捷鍵

android:checkable:是否可選

android:checked:是否選中

android:visible:是否可見

android:enable:是否可用

 

(9)彈出式菜單PopupMenu

創建步驟如下:

1、new PopupMenu(Context context,View anchor)創建彈出式菜單,anchor參數表示觸發菜單的組件。

2、調用MenuInflater的inflate()方法加載菜單資源。

3、調用PopupMenu的show()方法顯示彈出式菜單。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved