在列表頁面(ListView)的彈出菜單中,有的時(shí)候我們需要用到子菜單,今天在使用的過程中發(fā)現(xiàn),當(dāng)我們需要獲取ContextMenuInfo并取得一些列表項(xiàng)(list Item)信息,當(dāng)菜單為子菜單的時(shí)候,調(diào)用item.getMenuInfo()返回空值null。如下所示:

02 |
public void onCreateContextMenu(ContextMenu menu, View v, |
03 |
ContextMenuInfo menuInfo) { |
04 |
menu.setHeaderTitle("操作"); |
05 |
menu.add(0, VIEW_ID, 0, "查看全文"); |
06 |
menu.add(0, DELETE_ID, 0, "刪除"); |
07 |
SubMenu submenu = menu.addSubMenu(1,SHARE,0,"分享"); |
08 |
submenu.add(2,SHARE1,0,"短信分享"); |
09 |
submenu.add(2,SHARE2,0,"Gmail分享"); |
10 |
super.onCreateContextMenu(menu, v, menuInfo); |
14 |
public boolean onContextItemSelected(MenuItem item) { |
15 |
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); |
16 |
RSSItem rssItem = (RSSItem) getListAdapter().getItem(info.position); |
查了很多資料發(fā)現(xiàn),這可能是目前存在的一個(gè)bug,那么怎么解決這個(gè)問題呢?
我們可以通過一個(gè)成員變量來保存列表項(xiàng)(listView's Items)子菜單的MenuInfo。解決方法如下所示:
【編輯推薦】
- Android開發(fā):實(shí)現(xiàn)popupwindow中顯示listview
- Android開發(fā):實(shí)現(xiàn)帶圖片和checkbox的listview
- Android觸屏textview及l(fā)istview對比驗(yàn)證
- Android ListView復(fù)雜使用方式簡單理解
當(dāng)前標(biāo)題:對Android子菜單ContextMenuInfo返回空值的處理方法
標(biāo)題URL:
http://www.5511xx.com/article/cdohjhe.html