我可以从ListView弹出菜单中访问ListView项数据和底层数据库数据吗?

时间:2016-02-04 14:16:36

标签: android listview

  • 我有一个显示Listview的活动。

  • Listview使用CursorAdapter显示从SQLite数据库读取的数据。

  • 我已经实现了一个出现在每个ListView项目上的按钮。
  • 点击该按钮会调用onClickListener'它显示一个弹出菜单(通过膨胀' PopupMenu')。
  • 我需要从onMenuItemClick处理程序中的ListView项访问数据才能继续处理。

我有什么方法可以做到这一点吗?

我问了一个包含代码的问题的更长版本,但它没有得到任何回复,所以我认为它可能太长了,我现在已经将其删除了。

我的代码显示我尝试以两种方式实现点击处理程序: -

  • 通过XML android:onClick,因此点击处理程序出现在活动代码
  • 并动态,因此点击处理程序出现在CursorAdapter代码中。

我无法找到访问列表项数据的方法。似乎无法通过View参数获取它。而onMenuClick只传递了' MenuItem'

感谢您提供的任何指示

Sceenshot of my ListView

看来我可能会以错误的方式实现popoup菜单?

1 个答案:

答案 0 :(得分:0)

为了完整起见,这是我的解决方案。

我从来没有找到直接访问ListItem数据的方法。

相反,在CursorAdapter bindView中,我向ListView button添加了一个标记,其中包含ListItem位置和数据库项键值。

然后在按钮单击处理程序上,我读取标记并将键值和(Cursor) mListview.getAdapter().getItem(mSelectedBikePosition)保存在要在onMenuItemClick处理程序中使用的成员变量中。