Unable to save and retrieve String data using Sqlite in android

You need to move the Cursor to a valid row before trying to access column values with get...().

Add

if (cursor.moveToFirst()) {
    // cursor.get...()
}

around the cursor access.

In case you want all result rows, add a loop, too:

if (cursor.moveToFirst()) {
    do {
        // cursor.get...()
    } while (cursor.moveToNext());
}

This specific stacktrace is from getAllContacts() but getContact() has similar problem – you have moveToFirst() but fail to check if it succeeds.

Additionally getContactsCount() is broken, too. You shouldn’t access the count of a closed cursor.

Leave a Comment