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

时间:2010-10-25 13:36:39

标签: android menu contextmenu

我想为自定义视图显示一个ContextMenu,它不属于AdapterView。

我致电

myActivity.registerForContextMenu(myView);

并且ContextMenu已经显示。

但我不知道如何在

中访问myView的数据
@Override
onContextItemSelected(MenuItem item) //...

我以为我可以在

中创建自定义menuInfo
@Override
onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) //...

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

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

1 个答案:

答案 0 :(得分:5)

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

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