【问题标题】:How can I get the position of a row in a dataset in order to set the selected item in an Android Spinner?如何获取数据集中行的位置以便在 Android Spinner 中设置所选项目?
【发布时间】:2011-06-28 22:31:42
【问题描述】:

我有一个使用包含数据库数据的游标填充的 Spinner。似乎无法使用行的 ID 列的值在微调器中设置所选项目。设置所选项目的唯一方法是使用数据集中行的位置。它是否正确?如果是这样,有没有比使用游标遍历数据集更有效的方法来确定行的位置?

here 概述了效率低下(在我看来)的方式。

非常感谢!

【问题讨论】:

    标签: android cursor spinner selecteditem


    【解决方案1】:

    第一步,为您的数据集创建视图,包括连接等:

    CREATE VIEW my_view AS
      SELECT _id, field FROM my_table
    

    第二步:

    CREATE VIEW my_view2 AS
      SELECT count(*) AS row_id, q1.*
      FROM my_view AS q1
      LEFT JOIN my_view AS q2
      WHERE q1._id >= q2._id
      GROUP BY q1._id
    

    那么简单:

    SELECT * FROM my_view2
    

    结果:

    row_id | _id | field
    
    1   4   XbMCmUBFwb
    2   6   Te JMejSaK
    3   8   dDGMMiuRuh
    4   10  phALAbnq c
    5   11  EQQwPKksIj
    6   12  PAt tbDnf
    7   13  f zUSuhvM
    8   14  TIMBgAGhkT
    9   15  OOcnjKLLER
    

    通过 id 获取位置:

    SELECT * FROM my_view2 WHERE _id=11
    

    结果:

    row_id | _id | field
    
    5   11  EQQwPKksIj
    

    希望有所帮助

    【讨论】:

    • 很好的解决方案。我没有想到我可以在数据库端解决这个问题。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 2023-03-24
    相关资源
    最近更新 更多