我是Android新手。我有一个项目列表,并尝试将单个上下文菜单关联到每个列表项。设置了setListAdapter和onListItemClick但是当我点击任何列表项时,我总是得到相同的上下文菜单。理想情况下,列表项A应该在cliccked时触发菜单A,列表项B应该得到菜单B.无法弄清楚如何做到这一点。有人可以帮我找一个我可以用来学习如何操作的示例代码吗?
非常感谢和快乐的圣诞节,
斯特凡诺
答案 0 :(得分:4)
我没有任何显示该技术的示例代码 - 我最好的例子是我为咨询客户做的事情。
但是,让我指出this sample project使用上下文菜单并将其用作此解释的基础。
您需要在onCreateContextMenu()
中返回自定义菜单。如果您始终在此处返回相同的菜单,您将始终看到相同的菜单。要确定要显示的菜单,您需要知道哪个列表项是长按的。对于ListView
的上下文菜单,您可以将提供给ContextMenu.ContextMenuInfo
的{{1}}投射为onCreateContextMenu()
。该对象可以告诉您列表中长按的项目的位置和AdapterView.AdapterContextMenuInfo
,因此您可以选择正确的菜单。
在上面链接的示例代码中,我在_ID
进行了转换,因此我可以知道用户正在删除哪个项目。但是,同样的演员在onContextItemSelected()
中工作。
答案 1 :(得分:1)
Android团队最近发布了一些新样本。我相信你要做的事情有一个很好的例子here。