这段代码我试图检索notes表的所有行但是在执行期间返回的行数是正确的但是所有都像最后一行..我想知道错误是什么
public ArrayList<Note> selectAllNotes() {
Cursor cursor = dbReader.rawQuery("SELECT * FROM notes", null);
Note note = new Note();
ArrayList<Note> notes = new ArrayList<>();
while (cursor.moveToNext()) {
note.setNoteID(cursor.getInt(cursor.getColumnIndex(DbHelper.ID)));
note.setNoteTitle(cursor.getString(cursor.getColumnIndex(DbHelper.TITLE)));
note.setNoteContent(cursor.getString(cursor.getColumnIndex(DbHelper.CONTENT)));
notes.add(note);
}
return notes;
}
答案 0 :(得分:0)
在Note note = new Note();
之后移动while (cursor.moveToNext()) {
。
虽然这不是问的地方,但为什么我的代码不起作用?&#34;
答案 1 :(得分:0)
只需在循环中移动你的Note初始化,并尝试使用
`
if(cursor.getCount>0){
cursor.moveToFirst()
while(!cursor.isAfterLast()){
Note note=new Note();
....
}
}
`
在访问游标之前,与您的代码一样,您将不会拥有光标中的第一个数据,因为它已经移动到下一个数据。