Android:如何为自定义视图创建ContextMenu

cod*_*ody 3 android contextmenu menu

我想为自定义View显示ContextMenu,它不是AdapterView的一部分.

我打了电话

myActivity.registerForContextMenu(myView);
Run Code Online (Sandbox Code Playgroud)

并且ContextMenu已经显示出来.

但我不知道如何访问myView的数据

@Override
onContextItemSelected(MenuItem item) //...
Run Code Online (Sandbox Code Playgroud)

我以为我可以创建一个自定义menuInfo

@Override
onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) //...
Run Code Online (Sandbox Code Playgroud)

这来自文档:"menuInfo - 有关应显示上下文菜单的项目的额外信息.此信息将根据v的类别而有所不同."

任何人都可以给我一个提示吗?

Reu*_*ton 5

您的自定义视图类应该覆盖getContextMenuInfo()并返回实现的自定义对象ContextMenuInfo(考虑到接口没有成员,并不是很难!),并且其中包含您希望菜单单击处理程序获取的额外的每视图数据.

然后,您可以onContextItemSelected(MenuItem item)通过调用item.getMenuInfo()并转换返回的值来获取此对象.