日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android菜单详解三:上下文菜单

發(fā)布時間:2025/5/22 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android菜单详解三:上下文菜单 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

創(chuàng)建一個上下文菜單

一個上下文菜單跟PC上的右鍵菜單類似.你應使用上下文菜單為用戶界面上的某個部分提供動作選擇功能.在Android中,一個上下文菜單會在用戶長按一個界面條目時出現.

你可以為任何View創(chuàng)建上下文菜單,但是在 ListView中是最常用到上下文菜單的.每當用戶在一個ListView項上長按,并且這個ListView注冊了上下文菜單,那么被按的 list item就會彈出上下文菜單 (在聯系人應用中就演示了這個過程).
Register a ListView

activity使ListViewlist items單,ListViewregisterForContextMenu()如:

registerForContextMenu(getListView());

為了使view提供上下文菜單,你必須為這個View向系統(tǒng)注冊上下文菜單.調用方法 registerForContextMenu() 并傳入要彈出菜單的 View 作為參數即可.當這個View被長按時,它就會顯示一個上下文菜單.

為了定義上下文菜單的樣子和行為,需重寫你的activity的上下文菜單回調方法:onCreateContextMenu() 和onContextItemSelected().

例如,下面是一個 onCreateContextMenu() ,使用了資源文件 context_menu.xml :

@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.context_menu, menu); }MenuInflater 被用于從一個 菜單資源inflate出一個菜單. (你也可以使用 add() 來添加菜單項們) .回調函數的參數中包含了用戶所選擇的View 和一個ontextMenu.ContextMenuInfo 對象,它可以提供被選擇的View的更多的信息.你可以使用這些參數來決定哪個上下文菜單應被創(chuàng)建.但是在這個例子中,Activity所有的上下文菜單都是相同的.

然后,當用戶從上下文菜單選擇一個菜單項時,系統(tǒng)會調用方法 onContextItemSelected(). 下面的例子展示了如何處理被選擇的菜單項:

@Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); switch (item.getItemId()) { case R.id.edit: editNote(info.id); return true; case R.id.delete: deleteNote(info.id); return true; default: return super.onContextItemSelected(item); } }這些代碼與選項菜單中的例子代碼基本相同.getItemId() 從所選的菜單項獲取菜單ID,并且使用switch語句匹配菜單ID與對應的處理.并且同于選項菜單的例子,default語句調用父類的同一方法處理未被我們處理的菜單項.

在此例中,被選擇的View條目是一個 ListView條目.為了在選擇的一個view條目上執(zhí)行相應的動作,應用程序需要知道View條目的list ID.為了獲得 list ID,程序中調用了 getMenuInfo(), 它返回一個 AdapterView.AdapterContextMenuInfo 對象,這個對象包含了條目的list ID.本地方法editNote()和deleteNote()接受這個list ID用于執(zhí)行一些作.

注: 上下文菜單項不支持圖標或快捷鍵.




轉載于:https://www.cnblogs.com/android-html5/archive/2011/12/24/2533611.html

總結

以上是生活随笔為你收集整理的android菜单详解三:上下文菜单的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。