这是方法:
public ArrayList<Integer> getDays() {
Cursor c = database.rawQuery("SELECT * FROM debt;", null);
nameList = new ArrayList<String>();
dayList = new ArrayList<Integer>();
String indName[] = new String[c.getCount()];
String indDay[] = new String[c.getCount()];
int d = 0, j = 0, u = 0;
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
indName[j++] = c.getString(c.getColumnIndex("debt_name"));
indDay[d++] = c.getString(c.getColumnIndex("pay_day")); // line 384
}
for (String name : indName) {
if ((indDay[u] != "") || (indDay[u] != null)) {
dayList.add(Integer.valueOf(indDay[u++]));
}
}
c.close();
return dayList;
}
我在第384行收到的错误是: “无法读取第0行,第-1行。确保光标已初始化。”
第384行标在上面。 你能找到我在这里找不到的东西吗?
答案 0 :(得分:2)
删除;从您的查询结束:SELECT * FROM debt
拨打这一行:
//optional
//"this" is your DBHELPER class
SQLiteDatabase database = this.getWritableDatabase();
通过此
替换(标记为阻止)if(c.moveToFirst()){
while(c.moveToNext()) {
indName[j++] = c.getString(c.getColumnIndex("debt_name"));
indDay[d++] = c.getString(c.getColumnIndex("pay_day"));
} ( Line 386!!! )
}
答案 1 :(得分:0)
把c.moveToNext();
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
indName[j++] = c.getString(c.getColumnIndex("debt_name"));
indDay[d++] = c.getString(c.getColumnIndex("pay_day")); // line 384
enter code here// c.moveToNext();
}