【发布时间】:2014-07-14 06:55:17
【问题描述】:
在我的应用程序中,我为列表视图中的每个项目附加了弹出菜单。当我们单击弹出菜单图标时,弹出菜单还有两个项目。我在我的活动中实现了OnMenuItemClickListener 来监听弹出菜单项的点击,这工作正常。但问题是我如何知道列表项 id (不是弹出菜单项 ID)当我单击任何列表视图项的弹出菜单图标时。弹出菜单代码如下:
public void showPopup(View v) {
PopupMenu popup = new PopupMenu(this, v);
popup.setOnMenuItemClickListener(this);
popup.inflate(R.menu.actions);
popup.show();
}
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_play:
return true;
default:
return false;
}
}
【问题讨论】:
-
你在哪里调用 showPopup?
-
@pskink 在我的 xml 文件中来自 imageview onclick 事件
-
好的......所以你的问题不是关于“如何存储一些值并在 onMenuItemClick 回调中读取它”,而是“我已经从 xml 创建了 onClick 属性并且不知道如何获取父列表项视图的 id”? PopupMenu 和这个问题完全没有关系,对吧?
-
是的,你是对的@MaciejCiemięga
-
首先:为什么你需要视图的id?如果你想从列表中播放一些东西,你宁愿需要一个位置来从与该位置相关的列表中获取项目。第二:在制作列表时不要使用 xml 中的 onClick 事件...在您的适配器中设置 OnClickListener - 您将拥有您的 int 位置(或列表项视图的 id,如果您真的想要它)。请更新您的问题,因为它确实是完全不同的事情。
标签: android android-layout popupmenu