我正在處理一個有4列(_id,名稱,分數,狀態)的數據庫,並使用以下命令將所有行導入到arrayList中。不尋常的android getString和等於行爲
Cursor assessmentStatus = myDbHelper.getAllTests();
assessmentStatus.moveToFirst();
while (!assessmentStatus.isAfterLast()) {
allAssessments.add(assessmentStatus.getString(1));
if(assessmentStatus.getString(3).equals("locked")) { lockedAssessments.add(assessmentStatus.getString(1)); }
assessmentStatus.moveToNext();
}
assessmentStatus.close();
第一條語句(allAssessments.add ...)正常工作。 if語句如果使用getString(0).equals或getString(1).equals,但如果我使用getString 3或4 - 應用程序崩潰,則不起作用。如果我使用getColumnIndex(「status」),它也不起作用。等於
已經嘗試清理項目,但無法弄清楚這種行爲。任何想法爲什麼發生這種情況?!
UPDATE:
1)getAllTests如下(也試圖rawQuery SELECT * FROM ...等
public Cursor getAllTests()
{
return myDataBase.query("assessment_tests", new String[] {"_id", "name", "scores", "status"}, null, null, null, null, null);
}
2)所有字段是文本字段。卸載,清理項目並重新安裝不起作用。
3)打開數據庫有:
DataBaseHelper myDbHelper = new DataBaseHelper(null);
myDbHelper = new DataBaseHelper(this);
try {
myDbHelper.openDataBase();
}catch(SQLException sqle){
throw sqle;
}
我知道數據庫的創建工作得很好,因爲我有一個完美工作的其他表...
能否請您添加並顯示錯誤消息堆棧跟蹤拉分貝? – micha
可你也張貼相關數據庫創建的代碼和功能getAllTests代碼 – nandeesh
上述更新 - 感謝 – cg5572