編輯:關於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()方法顯示彈出式菜單。
本文實例講述了Android通過json向MySQL中寫入數據的方法。分享給大家供大家參考,具體如下:先說一下如何通過json將Android程序中的數據上傳到MySQL
本文實例講述了Android開發之ListView列表刷新和加載更多實現方法。分享給大家供大家參考。具體如下:上下拉實現刷新和加載更多的ListView,如下:packa
PS:以現在的眼光看以前寫的博客感覺寫的很爛,或許或一段時間再看現在的博客會有同樣的感覺。所以每時每刻都去學習,去發現和理解新的東西。引言由於之前寫的一篇關於Androi
行為變更Android N 除了提供諸多新特性和功能外,還對系統和 API 行為做出了各種變更。本文重點介紹您應該了解並在開發應用時加以考慮的一些重要變更。如果您之前發布