Переместить курсор в строку по одному из столбцов - PullRequest
4 голосов
/ 06 ноября 2011

После запроса нужных мне данных у меня теперь есть курсор, содержащий все данные, представленные пользователю в виде списка.

Когда пользователь щелкает элемент для его редактирования, я перемещаю курсорв правильную позицию cursor.moveToPosition(pos), из которой я могу получить все данные элемента, которые мне нужны: идентификатор, заголовок, папка или нет, родительская папка.

Теперь, когда у меня есть идентификатор родительской папки, как я могу использоватьчтобы получить название папки элемента, чтобы я мог показать пользователю, в какой папке находится элемент?Я не могу использовать перемещение в позицию, потому что я не знаю родительскую позицию, только ее идентификатор.

Вот пример столбца db.

FOLDER -> 0 = не папка (false), 1 = папка (true)

PARENT столбец -> содержит ID своей папки

ID  TITLE     FOLDER   PARENT
1   folder1      1        0
2   item1        0        1
3   item2        0        1
4   folder2      1        1
5   item1        0        4
6   item2        0        4
7   folder3      1        4
8   item1        0        7
9   item2        0        7

Пример: пользователь редактирует item3.Я перемещаю курсор в положение 2 (начиная с 0).Я получаю item3 parent, который является ID = 1.Как я могу получить НАЗВАНИЕ ID = 1.

Надеюсь, это достаточно ясно :) Спасибо!

Ответы [ 3 ]

4 голосов
/ 06 ноября 2011

Вы можете либо снова пройтись по курсору, проверяя каждый идентификатор, чтобы увидеть, равен ли он 1, а затем получить заголовок.

cur.moveToFirst();
while (cur.isAfterLast() == false) {
  if (cur.getInt(cur.columnIndex("ID") == 1) {
      String title = cur.getString(cur.columnIndex("TITLE"));
  }       
  cur.moveToNext();
}

Или вы можете создать новый запрос, где id = 1.

0 голосов
/ 07 декабря 2012

В ваш запрос вы можете включить JOIN, чтобы загрузить заголовок родителя в качестве другого столбца в ResultSet, а затем получить его без необходимости делать другой запрос или повторять итерацию R еще раз.

0 голосов
/ 06 ноября 2011

Вы можете использовать:

yourCursor.getString(yourCursor.columnIndex("TITLE"));

Это даст вам значение в столбце "TITLE" в строке, на которую в данный момент указывает курсор.

...