編輯:關於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 WebView遠程代碼執行漏洞簡析 0x00 本文參考Android WebView 遠程代碼執行漏洞簡析。代碼地址為,https://github.
安卓開源項目周報1214,安卓開源項目1214由OpenDigg 出品的安卓開源項目周報第一期來啦。我們的安卓開源周報集合了OpenDigg一周來新收錄的優質的
Android中使用Notification實現普通通知欄(Notification示例一),rest示例java實現Notification是在你的應用常規界面之外展示
HTML5的五種客戶端離線存儲方案最近折騰HTML5游戲需要離線存儲功能,便把目前可用的幾種HTML5存儲方式研究了下,基於HT for Web寫了個綜合的實例,分別利用
Android APP 讀取 AndroidManifest.xml 中