Dieser Code-Schnipsel Ich versuche, alle Zeilen der Noten-Tabelle abzurufen, aber während der Ausführung gibt die Anzahl der Zeilen korrekt sind, aber alle sind wie die letzte Zeile .. Ich möchte den Fehler wissen, wasWas ist der Fehler in ArrayList add() -Methode?
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;
}
move your Note Anmerkung = new Note(); nach innen während der Schleife. Alle Inhalte der Liste beziehen sich auf dasselbe Objekt. – Jimmy
Mögliches Duplikat von [Warum enthält meine ArrayList N Kopien des zuletzt zur Liste hinzugefügten Objekts?] (Https://stackoverflow.com/questions/19843506/why-does-my-arraylist-contain-n-copies-of -der-letzte-Artikel-hinzugefügt-zur-Liste) –