Reputation: 935
After creating a standard SQLite cursor, I'm iterating thru the entries using:
while (cursor.moveToNext()) {
}
All the rows are being processed correctly.
All the documentation I've read states you need to issue a moveToFirst()
to ensure
that you're pointing to the first entry of the cursor set.
Is this working even though it shouldn't, and another release may not have the same processing?
Upvotes: 19
Views: 4761
Reputation: 4062
No, this is working correctly. Cursor
s begin at row index -1 (before the first row). If the Cursor
references multiple rows, looping through them with the while
loop as you have suggested is the preferred method. It will call moveToNext()
, which moves you to index 0 (the first row), and go from there.
If your Cursor
only references one row, you may call moveToFirst()
on it before reading data to ensure that you are on a valid index. Both moveToFirst()
and moveToNext()
have the same effect when the Cursor
is first created and is at index -1.
Upvotes: 44