Как работает курсор в Android?

0

Я читал о Cursor API в Android, а также о других комментариях к нему. Но есть кое-что, что я просто не мог понять.

Когда запрос выполняется, содержит ли Cursor ВСЕ строки запроса или только первую строку запроса?

Если он возвращает все строки, то почему люди говорят, что Cursor указывает на одну строку запроса? Потому что есть необходимость вызвать moveToFirst() чтобы переместить Cursor в следующую строку.

Если он возвращает все строки, то откуда он знает количество строк в запросе с использованием метода getCount()?

Я пытался понять Cursor, сравнивая его с ArrayList например. В ArrayList мы получаем доступ к каждой записи, используя индекс списка. Этот указатель фактически является указателем, указывающим на одну запись ArrayList.

Итак, из того, что я вижу, похоже, что Cursor имеет только одну строку. Когда я вызову moveX() он вернет мне следующую запись данных. Но откуда узнать количество результатов в запросе?

  • 0
    он содержит все строки: вы можете получить их напрямую, используя moveToPosition(position) где position находится в диапазоне [0 .. getCount() -1]
  • 0
    как насчет людей, говорящих, что это указывает на один ряд ?
Показать ещё 4 комментария
Теги:
database
cursor
android-cursor

2 ответа

0

Объект курсора возвращается из запроса, он возвращает все строки, возвращаемые запросом.

Он имеет все строки, но указывает только на одну строку, что означает, что вы должны получить строку, в которой вы должны сначала навести курсор на нее

  • 0
    Я думаю, что именно в этом и заключается проблема ... Cursor не перемещается ... что на самом деле перемещается - это указатель , который внутри класса Cursor есть .. верно? Потому что Cursor это весь набор
  • 0
    @ imran.razak Да, у Cursor есть весь набор, но затем, когда вы говорите Cusror.move, вы указываете Курсору на место внутри себя. Как, например, я даю вам таблицу, а затем говорю, что вы смотрите в 1-м ряду, у вас все еще есть стол, и вы тот, кто смотрит в него тоже
Показать ещё 2 комментария
0

Cursor - это объект, указывающий на один индекс строки за строкой. В первичном случае запроса Cursor указывает на нулевую строку набора результатов. Затем вы должны перенести его в первую строку или каждую строку, которую вы хотите.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню