我正在尝试从数据库中读取数据,我的应用程序停止了。 我有这个日志:
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
07-14 06:43:00.716: E/AndroidRuntime(2604): at android.database.AbstractCursor.checkPosition(AbstractCursor.java:426)
这是方法:
public Cursor getDetails(){
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor;
cursor = db.query(TABLE_NAME, new String[] {EMAIL,PASSWORD}, null, null, null, null, null);
return cursor;
}
这是主要活动:
cursor = handler.getDetails();
email_by_user = cursor.getString(cursor.getColumnIndex(EMAIL));
任何想法? 感谢
答案 0 :(得分:1)
如果要访问Cursor
对象中的数据,则必须放置Cursor
对象。
实际上,在尝试从中访问数据之前,您必须将Cursor
置于第一行。
放线
cursor.moveToFirst();
行前
email_by_user = cursor.getString(cursor.getColumnIndex(EMAIL));
即。将您的活动代码重写为
cursor = handler.getDetails();
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
email_by_user = cursor.getString(cursor.getColumnIndex(EMAIL));
}