在列表頁面(ListView)的彈出菜單中,有的時候我們需要用到子菜單,今天在使用的過程中發(fā)現(xiàn),當我們需要獲取ContextMenuInfo并取得一些列表項(list Item)信息,當菜單為子菜單的時候,調用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),這可能是目前存在的一個bug,那么怎么解決這個問題呢?
我們可以通過一個成員變量來保存列表項(listView's Items)子菜單的MenuInfo。解決方法如下所示:
【編輯推薦】
- Android開發(fā):實現(xiàn)popupwindow中顯示listview
- Android開發(fā):實現(xiàn)帶圖片和checkbox的listview
- Android觸屏textview及l(fā)istview對比驗證
- Android ListView復雜使用方式簡單理解
網(wǎng)頁標題:對Android子菜單ContextMenuInfo返回空值的處理方法
文章來源:
http://www.dlmjj.cn/article/cdohjhe.html