2014-01-08 101 views
0

我收到一個nullPointerException錯誤,在其中一個方法期間,我似乎無法弄清楚爲什麼我的一個變量(csID)變爲空。NullPointerException異常Android Java

這裏是方法:

public String getSubjectBasedOnHID(int hID) { 
    String selectQuerySubjectForHomework = "SELECT sID FROM homework WHERE hID = '" 
      + hID + "';"; 
    HashMap<String, String> sIDD = new HashMap<String, String>(); 

    SQLiteDatabase database = this.getReadableDatabase(); 
     Cursor cursorGetsID = database.rawQuery(selectQuerySubjectForHomework, 
      null); 

    if (cursorGetsID.moveToFirst()) { 
     HashMap<String, String> temp = new HashMap<String, String>(); 
     temp.put("sID", cursorGetsID.getString(0)); 

     sIDD = temp; 
    } 
    String csID = sIDD.get("sID").toString(); 




    String Subject = csID; 
    return Subject; 
}; 

CSID成爲空(我認爲),這會導致程序崩潰,任何幫助將不勝感激!

的logcat:

01-07 18:58:45.854: E/AndroidRuntime(2630): Caused by: java.lang.NullPointerException 
01-07 18:58:45.854: E/AndroidRuntime(2630):  at com.compfour.homework.dataBaseTools2.getSubjectBasedOnHID(dataBaseTools2.java:284) 

謝謝提前。

+0

將是System.out.print一個在if語句,看它是否正在執行 – Ogen

回答

0

試試這個代碼:

temp.put("sID", cursorGetsID.getString(cursorGetsID.getColumnIndexOrThrow("hID"))); 

// hID is your colunm name in SQLite data table, you can change it to another 
1

如果沒有記錄返回並且您的Cursor爲空,則sIDD.get("sID")將返回空值。

你應該處理您的代碼:

if (sIDD.containsKey("sID")) 
    return sIDD.get("sID").toString(); 
else 
    return null; // or empty string or anything suitable in this case 
+0

使用調試我可以看到sIDD和temp始終爲空。這是我真正的問題奠定的地方,我似乎可以找出它們爲什麼是空的。 –

相關問題