Sqlite: похоже, что moveToNext работает без moveToFirst

После создания стандартного курсора SQLite, я повторяю записи, используя:

while (cursor.moveToNext()) { } 

Все строки обрабатываются правильно. Во всех документах, которые я прочитал, вы должны moveToFirst() чтобы убедиться, что вы указываете на первую запись набора курсоров.

Это работает, даже если это не так, и у другой версии может быть не такая же обработка?

Нет, это работает правильно. Cursor начинается с индекса строки -1 (перед первой строкой). Если Cursor ссылается на несколько строк, их можно использовать с циклом while, как вы предложили, предпочтительным методом. Он вызовет moveToNext() , который переместит вас к индексу 0 (первая строка) и оттуда.

Если ваш Cursor ссылается только на одну строку, вы можете вызвать moveToFirst() на нем перед чтением данных, чтобы убедиться, что вы находитесь на действительном индексе. Both moveToFirst() и moveToNext() имеют тот же эффект, когда Cursor сначала создается и имеет индекс -1.

Intereting Posts
Android Studio: Не удалось создать плагин типа «AppPlugin» Как использовать ресурсы по умолчанию для Android в моем макете xml? Есть ли способ для Activity узнать, какой фрагмент был только что создан? Delphi get android combobox выделенный текст элемента Устройство, показывающее сигнал Сила, если нет сима Ошибка ОС Android с некоторыми устройствами, на которых работает Jelly Bean / 4.2.1 – TextView.setError (ошибка CharSequence) Отсутствует значок Вложенный файл макета XML Установка службы платежей по умолчанию для приложений SoftInputMode в фрагментах Проблемы с ListView для Android в Android 2.X Прерывистый 401 Несанкционированный от Google GCM Android 6.0 – В чем разница между опасными и специальными разрешениями? Доступен ли SQL или общий доступ к файлам в основном потоке пользовательского интерфейса Android? Cordova Barcodescanner – Используйте фронтальную камеру Обнаружить бегущий жест над предметами, которые можно щелкнуть