Android編程之菜單的實(shí)現(xiàn)方法實(shí)例詳解
本文實(shí)例講述了Android編程之菜單的實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
Options Menu 當(dāng)用戶按下menu button按鈕時(shí)顯示的菜單
Context Menu 當(dāng)用戶長(zhǎng)久按住屏幕,被注冊(cè)顯示上下文菜單的視圖時(shí)顯示的菜單
Submenu 當(dāng)用戶按下一個(gè)菜單的某個(gè)選項(xiàng)時(shí)彈出的子菜單
以上三種菜單也就是我們經(jīng)常所說(shuō)的:選項(xiàng)菜單,上下文菜單和子菜單。
一.上下文菜單
1. 實(shí)現(xiàn)onCreateContextMenu即可創(chuàng)建該菜單
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub super.onCreateContextMenu(menu, v, menuInfo); // 加載已定義好的布局menu.xml MenuInflater inflater = getMenuInflater(); inflater.inflate(R.layout.menu, menu); // 或者用代碼來(lái)實(shí)現(xiàn)菜單添加 menu.setHeaderTitle("長(zhǎng)按菜單-ContextMenu"); menu.add(0, 0, 0, "彈出長(zhǎng)按菜單0"); menu.add(0, 1, 0, "彈出長(zhǎng)按菜單1"); }
2. 當(dāng)菜單某個(gè)選項(xiàng)被點(diǎn)擊時(shí)調(diào)用該方法
@Override public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub AdapterContextMenuInfo infor = (AdapterContextMenuInfo)item.getMenuInfo(); switch (item.getItemId()) { case R.id.help: return true; case R.id.addnew: } }
3. 當(dāng)上下文菜單關(guān)閉時(shí)調(diào)用的方法
@Override public void onContextMenuClosed(Menu menu) { // TODO Auto-generated method stub super.onContextMenuClosed(menu); }
對(duì)于這樣已經(jīng)定義好的上下文菜單,總得注冊(cè)到一些控件上,這樣等我們長(zhǎng)按住這個(gè)控件時(shí),才能跳出上下文菜單。那該怎么把上下文菜單注冊(cè)到某些控件上呢,第一種是實(shí)現(xiàn)ListView的一個(gè)監(jiān)聽(tīng)器
listview.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
但是上下文菜單也要在該方法里創(chuàng)建.
public void onCreateContextMenu(ContextMenu conMenu, View view , ContextMenuInfo info) { conMenu.setHeaderTitle("ContextMenu"); conMenu.add(0, 0, 0, "Delete this favorite!"); /* Add as many context-menu-options as you want to. */ } });
或者是直接在本活動(dòng)調(diào)用registerForContextMenu(this.listView1);這里是注冊(cè)到一個(gè)ListView上了,這樣長(zhǎng)按ListView就能跳出上下文菜單了。
二. 選項(xiàng)菜單
相比而言就簡(jiǎn)單了
一樣道理只需實(shí)現(xiàn)onCreateoptionsMenu,onOptionsItemSelected和onOptionsMenuClosed就ok了
三. 子菜單
按理說(shuō)子菜單也不難,確實(shí)如此,當(dāng)實(shí)現(xiàn)了選項(xiàng)菜單,或上下文菜單(在上下文菜單里也可以實(shí)現(xiàn)子菜單,這里我們就舉這樣的例子),則子菜單的實(shí)現(xiàn)便是水到渠成。如上面的代
碼:
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub super.onCreateContextMenu(menu, v, menuInfo); //加載已定義好的布局menu.xml MenuInflater inflater = getMenuInflater(); inflater.inflate(R.layout.menu, menu); //或者用代碼來(lái)實(shí)現(xiàn)菜單添加 menu.setHeaderTitle("長(zhǎng)按菜單-ContextMenu"); menu.add(0, 0, 0, "彈出長(zhǎng)按菜單0"); menu.add(0, 1, 0, "彈出長(zhǎng)按菜單1"); //在這里就可以添加實(shí)現(xiàn)子菜單的代碼 int base = menu.FIRST + 100; SubMenu sm = menu.addSubMenu(base, base + 1, Menu.NONE, "submenu"); sm.add(base, base + 2, base + 2, "sub item1"); sm.add(base, base + 3, base + 3, "sub item2"); }
這樣子菜單便也實(shí)現(xiàn)了,對(duì)于它的單擊事件,只要在相應(yīng)的選項(xiàng)菜單或者上下文菜單的偵聽(tīng)器里照樣判斷執(zhí)行就OK了。
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android動(dòng)態(tài)添加menu菜單的簡(jiǎn)單方法
- Android編程實(shí)現(xiàn)自定義系統(tǒng)菜單背景的方法
- Android仿微信頂/底部菜單欄效果
- Android實(shí)現(xiàn)類似于PC中的右鍵彈出菜單效果
- Android編程之菜單實(shí)現(xiàn)方法
- Android編程實(shí)現(xiàn)二級(jí)下拉菜單及快速搜索的方法
- Android開(kāi)發(fā)之menu菜單
- Android實(shí)現(xiàn)模仿UCweb菜單效果的方法
- Android上下文菜單用法實(shí)例分析
- Android選項(xiàng)菜單用法實(shí)例分析
- Android仿微信菜單(Menu)(使用C#和Java分別實(shí)現(xiàn))
- Android編程實(shí)現(xiàn)為應(yīng)用添加菜單的方法
相關(guān)文章
Android中創(chuàng)建快捷方式代碼實(shí)例
這篇文章主要介紹了Android中創(chuàng)建快捷方式代碼實(shí)例,本文分為三個(gè)步驟實(shí)現(xiàn),并分別給出對(duì)應(yīng)實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-04-04詳解Android的MVVM框架 - 數(shù)據(jù)綁定
這篇文章主要介紹了詳解Android的MVVM框架 - 數(shù)據(jù)綁定,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05Android實(shí)現(xiàn)便于批量操作可多選的圖片ListView實(shí)例
這篇文章主要介紹了Android實(shí)現(xiàn)便于批量操作可多選的圖片ListView功能實(shí)現(xiàn)方法,涉及ListView針對(duì)多圖操作的相關(guān)技巧,需要的朋友可以參考下2016-08-08Android中button點(diǎn)擊后字體的變色效果
button的點(diǎn)擊效果無(wú)疑是非常簡(jiǎn)單的,接下來(lái)通過(guò)本文給大家介紹下如何添加button點(diǎn)擊的字體顏色變化效果,感興趣的朋友一起看看吧2016-10-10Kotlin實(shí)現(xiàn)多函數(shù)接口的簡(jiǎn)化調(diào)用
這篇文章主要為大家詳細(xì)介紹了Kotlin實(shí)現(xiàn)多函數(shù)接口的簡(jiǎn)化調(diào)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06Android實(shí)現(xiàn)帶頭像的用戶注冊(cè)頁(yè)面
這篇文章主要介紹了Android實(shí)現(xiàn)帶頭像的用戶注冊(cè)頁(yè)面的相關(guān)資料,介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06Android實(shí)現(xiàn)計(jì)步傳感器功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)計(jì)步傳感器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01Android資源文件與層次式導(dǎo)航超詳細(xì)講解
這篇文章主要介紹了Android資源文件與層次式導(dǎo)航,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12Android開(kāi)發(fā)教程之shape和selector的結(jié)合使用
shape和selector是Android UI設(shè)計(jì)中經(jīng)常用到的,比如我們要自定義一個(gè)圓角Button,點(diǎn)擊Button有些效果的變化,就要用到shape和selector,接下來(lái)通過(guò)本文給大家介紹Android開(kāi)發(fā)教程之shape和selector的結(jié)合使用,感興趣的朋友一起學(xué)習(xí)吧2016-01-01