Как узнать положение строки в наборе данных, чтобы установить выбранный элемент в Android Spinner? - PullRequest
2 голосов
/ 17 февраля 2011

У меня есть Spinner, который заполняется с помощью курсора, содержащего данные из базы данных.Похоже, что невозможно установить выбранный элемент в счетчике, используя значение столбца ID строки.И единственный способ установить выбранный элемент - использовать положение строки в наборе данных.Это правильно?Если да, есть ли более эффективный способ определения позиции строки, чем с помощью итераций по набору данных с помощью курсора?

Неэффективный (на мой взгляд) способ обозначен здесь .

Большое спасибо!

1 Ответ

1 голос
/ 18 февраля 2011

Первый шаг, создание представления для набора данных, с объединениями и т. Д.:

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

Надеюсь, что поможет

...