Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我可以从ListView弹出菜单访问ListView项目数据和基础数据库数据吗?_Android_Listview - Fatal编程技术网

Android 我可以从ListView弹出菜单访问ListView项目数据和基础数据库数据吗?

Android 我可以从ListView弹出菜单访问ListView项目数据和基础数据库数据吗?,android,listview,Android,Listview,我有一个显示Listview的活动 Listview使用游标适配器显示从SQLite数据库读取的数据 我已经实现了一个按钮,它出现在每个ListView项上 单击按钮调用“onClickListener”,它显示一个弹出菜单(通过膨胀“PopupMenu”) 我需要从onMenuItemClick处理程序中的ListView项访问数据,以便继续处理 我有什么办法可以做到这一点吗 我问了一个包含代码的更长版本的问题,但没有得到任何回应,所以我认为它可能太长了,现在我已经删除了它 我的代码表明,我

我有一个显示Listview的活动

  • Listview使用游标适配器显示从SQLite数据库读取的数据

  • 我已经实现了一个按钮,它出现在每个ListView项上
  • 单击按钮调用“onClickListener”,它显示一个弹出菜单(通过膨胀“PopupMenu”)
  • 我需要从onMenuItemClick处理程序中的ListView项访问数据,以便继续处理
  • 我有什么办法可以做到这一点吗

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

    我的代码表明,我曾尝试通过两种方式实现单击处理程序:-

    • 通过xmlandroid:onClick,单击处理程序将显示在活动代码中
    • 并且是动态的,因此单击处理程序出现在CursorAdapter代码中
    我也找不到访问列表项数据的方法。似乎没有办法通过View参数获得它。onMenuClick只传递“MenuItem”

    感谢您提供的任何指导


    看来我可能用错误的方式实现popoup菜单了

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

    我从未找到直接访问
    列表项
    数据的方法

    相反,在
    CursorAdapter
    bindwiew
    中,我在
    列表视图
    按钮
    中添加了一个标记,其中包含了
    列表项
    位置和数据库项键值


    然后在按钮click handler上,我读取标记并将键值和
    (光标)mListview.getAdapter().getItem(mSelectedBikePosition)
    保存在成员变量中,以便在
    onMenuItemClick
    处理程序中使用

    适配器
    为您执行此操作?很好的努力。但适配器给我的只是它上次读取的数据,即Listview中的底部(或顶部)项(取决于我上次滚动的方式)。谢谢你的评论我不敢相信这个非常严格的要求是不容易或不明显的-ListView项目的弹出菜单肯定很常见,而且大多数应用程序都想对ListItem数据做些什么。。。但是,我可以通过在按钮视图中将数据库表键作为标记传递来解决这个问题。这是一个肮脏的黑客行为,这意味着我必须再次读取数据库,所以它并不理想。哦,好吧,至少我能克服赫德