我有一個模型,lineModel
,我正在使用它爲我的gridAdapter填充數組items
。 當我手動填充條目時,我的模型正常工作。例如:嘗試訪問字符串數組時收到ArrayIndexOutOfBoundsException
lineModel[] items = {
new lineModel(2, "B", "", "#52D017", 5, 10, 30),
new lineModel(3, "C", "", "#000000", 4, 8, 30),
};
然而,隨着SQLite的填充items
當我接收ArrayIndexOutOfBoundsException
具體而言:68
04-15 15:50:21.322: E/AndroidRuntime(26804): java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
04-15 15:50:21.322: E/AndroidRuntime(26804): at com.idealiner.metrosleepuniversal.model.GridModel.getLines(GridModel.java:68)
線是當我打電話lineModel並用填充它遊標的值。
items[i] = new lineModel(i, c.getString(c_line), c.getString(c_name), c.getString(c_ccolor), 0, 0, 0);
方法getLines()
應該返回對象數組,但某處while()
循環,我相信填充數組的時候出現了問題,最有可能的。
任何幫助/意見/指導,將不勝感激。
整個方法,getLines
,低於:
public lineModel[] getLines() {
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String[] sqlSelect = {"*"};
String sqlTables = "lines";
qb.setTables(sqlTables);
Cursor c = qb.query(db, sqlSelect, null, null,
null, null, null);
lineModel[] items = {};
int i=0;
int c_line = c.getColumnIndex("line_id");
int c_name = c.getColumnIndex("line_name");
int c_ccolor = c.getColumnIndex("line_color");
int c_tcolor = c.getColumnIndex("text_color");
c.moveToFirst();
if (c != null) {
while(c.moveToNext()) {
items[i] = new lineModel(i, c.getString(c_line), c.getString(c_name), c.getString(c_ccolor), 0, 0, 0);
i++;
}
c.close();
}
return items;
}
謝謝你,我已經相應地更新我的代碼。 – markbratanov