对Android子菜单ContextMenuInfo返回空值的处理方法

移动开发 Android
今天在使用的过程中发现,当我们需要获取ContextMenuInfo并取得一些列表项(list Item)信息,当菜单为子菜单的时候,调用item.getMenuInfo()返回空值null。为了解决这个问题,我们来讲解一下对Android子菜单ContextMenuInfo返回空值的处理方法。

在列表页面(ListView)的弹出菜单中,有的时候我们需要用到子菜单,今天在使用的过程中发现,当我们需要获取ContextMenuInfo并取得一些列表项(list Item)信息,当菜单为子菜单的时候,调用item.getMenuInfo()返回空值null。如下所示:

01 @Override
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);
11 }
12  
13 @Override
14 public boolean onContextItemSelected(MenuItem item) {
15     AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
16     RSSItem rssItem = (RSSItem) getListAdapter().getItem(info.position);
17 }

查了很多资料发现,这可能是目前存在的一个bug,那么怎么解决这个问题呢?

我们可以通过一个成员变量来保存列表项(listView's Items)子菜单的MenuInfo。解决方法如下所示:

 

【编辑推荐】

  1. Android开发:实现popupwindow中显示listview 
  2. Android开发:实现带图片和checkbox的listview 
  3. Android触屏textview及listview对比验证 
  4. Android ListView复杂使用方式简单理解 
责任编辑:佚名 来源: ideasandroid
相关推荐

2009-12-07 11:11:41

WCF返回值

2012-02-01 14:41:13

Android手机硬件

2009-09-07 03:07:11

C# Main方法

2017-09-12 08:31:57

PHPSession方法

2009-12-23 10:34:15

ADO.NET 批处理

2023-03-16 15:13:41

缺失值据集中数据分析

2021-05-17 10:13:24

iOS名词复数开发

2010-08-18 09:30:32

IE6兼容

2024-03-15 09:50:00

NULLSQL优化

2010-01-25 15:15:46

Android传值

2010-10-12 14:27:57

mysql全文索引

2020-10-31 17:16:31

机器学习数据缺失数据科学

2020-11-02 10:54:18

机器学习技术人工智能

2009-06-09 16:53:22

Java Swing处理方法比较

2024-08-01 11:41:54

C#OneOf返回值

2009-12-14 13:38:59

VS 类视图

2010-01-27 10:21:00

Android菜单

2011-01-18 15:57:00

Postfix

2023-12-05 14:10:00

接口可读性

2016-11-04 08:53:05

androidjava单元测试
点赞
收藏

51CTO技术栈公众号