Я читал о Cursor
API в Android, а также о других комментариях к нему. Но есть кое-что, что я просто не мог понять.
Когда запрос выполняется, содержит ли Cursor
ВСЕ строки запроса или только первую строку запроса?
Если он возвращает все строки, то почему люди говорят, что Cursor
указывает на одну строку запроса? Потому что есть необходимость вызвать moveToFirst()
чтобы переместить Cursor
в следующую строку.
Если он возвращает все строки, то откуда он знает количество строк в запросе с использованием метода getCount()
?
Я пытался понять Cursor
, сравнивая его с ArrayList
например. В ArrayList
мы получаем доступ к каждой записи, используя индекс списка. Этот указатель фактически является указателем, указывающим на одну запись ArrayList
.
Итак, из того, что я вижу, похоже, что Cursor
имеет только одну строку. Когда я вызову moveX()
он вернет мне следующую запись данных. Но откуда узнать количество результатов в запросе?
Объект курсора возвращается из запроса, он возвращает все строки, возвращаемые запросом.
Он имеет все строки, но указывает только на одну строку, что означает, что вы должны получить строку, в которой вы должны сначала навести курсор на нее
Cursor
не перемещается ... что на самом деле перемещается - это указатель , который внутри класса Cursor
есть .. верно? Потому что Cursor
это весь набор
Cursor
есть весь набор, но затем, когда вы говорите Cusror.move, вы указываете Курсору на место внутри себя. Как, например, я даю вам таблицу, а затем говорю, что вы смотрите в 1-м ряду, у вас все еще есть стол, и вы тот, кто смотрит в него тоже
Cursor
- это объект, указывающий на один индекс строки за строкой. В первичном случае запроса Cursor
указывает на нулевую строку набора результатов. Затем вы должны перенести его в первую строку или каждую строку, которую вы хотите.
moveToPosition(position)
гдеposition
находится в диапазоне [0 ..getCount()
-1]