【问题标题】:Returning the id of a clicked item in a ListView. Values are retrieved from a database返回 ListView 中单击项的 id。从数据库中检索值
【发布时间】:2018-10-19 09:52:23
【问题描述】:

我有一个 ListView 从 SQLite 数据库获取数据。

数据:

  1. 主键、名称
  2. 1,“约翰”
  3. 2,“马克”

我的ListView 显示名称。

我如何做到这一点,当你点击一个名字时,你会得到主键的值?即点击“标记”将返回 2

【问题讨论】:

    标签: android sqlite listview


    【解决方案1】:

    您需要向列表视图适配器添加一个点击侦听器,然后在选择项目时返回键值。

    您可以通过在点击代码中执行类似的操作来获取键值..

    keyValue = cursor.getInt(cursor.getColumnIndex("key_field_name_in_table"));
    

    有很多列表视图点击处理的例子。这是我发现的一个 Stack Overflow

    【讨论】:

    • 是的,我知道如何做监听器位,我只需要知道如何获取对应的主键值到被点击的名称。上面的 getColumnIndex 方法看起来返回了正确的列,但那会返回对应的行吗?
    • 在点击时您可以添加类似cursor.moveToPosition(getAdapterPosition()); 的内容,以确保光标指向正确的行
    • 啊,getAdapterPosition() 看起来很有希望。有机会我会试试的
    • 我也找到了这个。
    • public void DetailClick(View v) { ListView lv = getListView(); int 位置 = lv.getPositionForView(v); }
    【解决方案2】:

    块引用

    似乎 OnItemClickListener 已经有一个名为 position 的整数变量。

    为了测试,在 OnItemClickListener 中我做了这样的祝酒词:

        Toast.makeText(getApplicationContext(),String.valueOf(position).Toast.LENGTH_LONG.show();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 2018-12-26
      相关资源
      最近更新 更多