Скорее всего, курсор на самом деле не "теряет записи", а, скорее всего, вы забыли набрать c.movetofirst()
, прежде чем перебирать записи КАЖДОЕ ВРЕМЯ.
Другими словами, когда вы перебираете записи курсора, указатель записи идет вверх, вверх, вверх, пока не пройдет "мимо последней записи". Таким образом, чтобы снова выполнить итерацию курсора, необходимо сбросить указатель записи, выполнив c.movetofirst()
.
c.moveToFirst();
while (!c.isAfterLast())
print ("Data: " + c.getString(0));
Затем повторение того же цикла while не будет выполнено, поскольку указатель записи курсора не был сброшен:
while (!c.isAfterLast())
print ("Data: " + c.getString(0));
(ничего не напечатано)
Таким образом, вам действительно нужно изменить второй блок кода на:
c.moveToFirst();
while (!c.isAfterLast())
print ("Data: " + c.getString(0));