我幾乎所有的事情都很好,四重檢查與數據庫和光標相關的每一件事情,我點擊一個活動按鈕後,下面的代碼運行從公共函數訪問字符串其他類:雖然初始化光標數據庫沒有初始化
DatabaseHandler dbfunc = new DatabaseHandler(getApplicationContext());
String deviceCODE = dbfunc.getUSERdetailsSTRING();
Log.i(TAG, deviceCODE);
以下是DB處理類的公共職能:
public String getUSERdetailsSTRING(){
HashMap<String,String> user = new HashMap<String,String>();
String selectQuery = "SELECT * FROM " + TABLE_LOGIN;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// Move to first row
cursor.moveToFirst();
if(cursor.getCount() > 0){
user.put("name", cursor.getString(1));
user.put("email", cursor.getString(2));
user.put("uid", cursor.getString(3));
user.put("created_at", cursor.getString(4));
user.put("Device Code", cursor.getString(5));
}
cursor.moveToFirst();
String deviceCODE = user.get(KEY_UID);
return deviceCODE;
}
但它表明我的logcat的以下錯誤:
08-16 22:06:24.840: E/AndroidRuntime(25923): FATAL EXCEPTION: main
08-16 22:06:24.840: E/AndroidRuntime(25923): java.lang.IllegalStateException: Couldn't read row 0, col 5 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
08-16 22:06:24.840: E/AndroidRuntime(25923): at android.database.CursorWindow.nativeGetString(Native Method)
08-16 22:06:24.840: E/AndroidRuntime(25923): at android.database.CursorWindow.getString(CursorWindow.java:438)
08-16 22:06:24.840: E/AndroidRuntime(25923): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51)
退回之前關閉光標,然後重試! – Pavlos
已經嘗試過 - 在同樣的問題之前和之後嘗試 – Naaz