林與SQL打在Android和發現這個問題:從我的數據庫Android的SQL遊標錯誤
即時閱讀數據:
SQLiteDatabase db = this.getReadableDatabase();
cursor = db.rawQuery("SELECT * FROM " + TABLE_SINGLE_APPS + " WHERE " + COLUMN_SINGLE_PACKAGE + "=?"
, new String[]{packageName});
SingleAppModel singleAppModel = new SingleAppModel();
,當我試圖讓cursor.getInt(3)在這裏:
try {
if (cursor.getCount() != 0) {
if (cursor.moveToFirst()) {
singleAppModel.setId(cursor.getInt(0));
singleAppModel.setAppName(cursor.getString(1));
singleAppModel.setPackageName(cursor.getString(2));
singleAppModel.setState(cursor.getInt(3) == 1);
}
}
} catch (Exception e) {
e.printStackTrace();
}
cursor.close();
db.close();
它會返回錯誤:
android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0`
奇怪的是,如果我刪除線我在調用cursor.getInt(3),它的作品。 具有該值的Colum存在,並確定其類型INTEGER。
另外cursor.getColumnCount()的值是4和cursor.getCount的值()是1 ...所以有definetly一些數據...
任何意見?
謝謝。
的的onCreate和onUpgrade方法,我覺得你的光標是不是你期待什麼。嘗試將調試點放在if條件並檢查數據是否到來 –
調試點是什麼意思?我是一種初學者程序員,所以如果你能更準確,我會非常感激。 –