2014-07-01 149 views
1

正在開發一個android應用程序,該應用程序針對實現三種類型的用戶級別的三種類型的用戶開展了登錄活動。我創建了登錄活動,它使用給定的登錄用戶名從數據庫提取用戶級別和密碼,以便使用意圖啓動相應的活動。現在我在數據庫方法上得到一個空指針異常。從數據庫中獲取用於登錄的字符串值

分貝取代碼:

 public String fetchPassword(String user_name) { 
     Cursor cursor; 

     SQLiteDatabase db = this.getReadableDatabase(); 

     cursor = db.query(DATABASE_TABLE_NAME_1, 
       new String[] { COLUMN_USER_LEVEL, COLUMN_USER_NAME }, 
       COLUMN_USER_NAME + "='" + user_name + "'", null, null, null, null); 

     cursor.moveToFirst(); 

      String result = cursor.getString(cursor.getColumnIndex("content")); 

      return result; 
    } 

    public String fetchUserLevel(String user_name) { 
     Cursor cursor; 

     SQLiteDatabase db = this.getReadableDatabase(); 

     cursor = db.query(DATABASE_TABLE_NAME_1, 
       new String[] { COLUMN_PASSWORD, COLUMN_USER_NAME }, 
       COLUMN_USER_NAME + "='" + user_name + "'", null, null, null, null); 

     cursor.moveToFirst(); 

      String result = cursor.getString(cursor.getColumnIndex("content")); 

     return result; 
    } 
+1

普勒斯發表您的logcat錯誤 – TeRRo

+0

@TeRRo無法複製的logcat – user3780419

+0

@ user3780419在logcat的,你可以看到一個選項導出日誌從那裏你可以在這裏保存logacat文件夾,請在保存 – user285oo6

回答

-1
 cursor.moveToFirst(); 

THS是你應該得到它

 String result = cursor.getString(cursor.getColumnIndex("content")); 

如果在數據庫中沒有記錄,將會有一個空指針因爲光標是空的。你需要檢查它是否是,然後繼續。

 cursor.isAfterLast(); 

如果它爲空則返回true。

logcat堆棧跟蹤將是一個很好的開始尋找的地方。

+0

'查詢之前縮進logcat的()'從不返回'null';如果沒有發現,遊標對象是空的,即'moveToFirst()'返回'false'。 –

相關問題