2011-07-27 35 views
3

在onCreate中,我将线性布局视图附加到变量activeView。然后我打电话给registerForContextMenu(activeView)。看起来,一切工作正常,上下文菜单被创建,项目是可点击的,但是,在onContextItemSelected,我打电话AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(),我得到一个nullpointerexception。我已经追踪了空menuInfo变量回来发现registerForContextMeu(activeView)从一开始就传递OnCreateContextMenu一个空ContextMenuInfo。这是为什么发生?我在一个不同的视图中执行同样的过程,一个listView,与linearlayout一起,并且问题在那里不存在。为什么registerForContextMenu传递onCreateContextMenu null ContextMenuInfo?

+1

如果您同时拥有'OnItemLongClickListener'和'registerForContextMenu',则必须在侦听器中返回'false'以避免'AdapterContextMenuInfo'为null。我实际上在监听器中调用'registerForContextMenu',因为我禁用了某些列表项的上下文菜单,并且它工作正常。 –

+0

Thx @ 3k- !!花了几个小时才找到这个解决方案。在听众中返回'假'就完成了这项工作! – mixable

回答

0

你期望从getMenuInfo()中获得什么?无论如何,我不认为它会被LinearLayout填充,我相信至多你能够得到产生菜单的View(相同的LinearLayout)。