2016-08-15 2 views
0

Ich habe versucht und sucht, wie Benutzereingaben in einer ArrayList des benutzerdefinierten Objekts gespeichert werden. Ich habe versucht onSaveInstancestate mit meinem benutzerdefinierten Objekt implementieren Parcelable. Ich habe eine Aktivität für die Benutzereingabe, diese Eingabe geht in mein benutzerdefiniertes Objekt und dann in eine ArrayList. Ich übergebe die ArrayList von einer Aktivität zur anderen, wo ich eine ListView habe, die ich mit den Objekten aus meiner ArrayList füllen möchte. Das alles funktioniert gut, aber wenn ich zurück zu der Aktivität gehe, um neue Eingabe zu geben, ersetzt sie die alte. Es speichert also nicht die Objekte in der ArrayList. Verwende ich das falsche Tool und sollte ich stattdessen SQLite verwenden? Oder vielleicht, weil ich neu im Codieren bin, habe ich etwas Offensichtliches übersehen, das verhindert, dass es richtig funktioniert.Verwenden Sie OnSaveInstancestate oder SQLite, um Benutzereingaben in ArrayList des benutzerdefinierten Objekts beim Wechseln von Aktivitäten zu speichern

Ich dachte, dass "Saving Array In Activity" hilfreich sein würde, also habe ich es benutzt, aber weil ich kein String-Objekt benutze, aber mein eigenes Objekt könnte es nicht für mich?

+0

Möchten Sie die Informationen auch nach dem Schließen der App oder nur für den Lebenszyklus der Anwendung speichern? Wenn es ersteres ist, könnten Sie bitte den Code für die Modellklasse angeben, der Ihre 'ArrayList' in Ihrer Frage auffüllt? – PPartisan

+0

Sie haben Recht mit der Implementierung, aber stellen Sie sicher, dass Sie Code in onRestoreInstanceState hinzugefügt haben, um alte Daten aufzufüllen. – Ramit

Antwort

0

Es hängt von der Langlebigkeit/Wichtigkeit der Daten selbst ab, wenn sie für einen langen Zeitraum verwendet werden, dann sollten Sie SQLite verwenden.

Von was Sie sagen, onSaveInstancestate klingt wie der richtige Weg für Sie zu gehen. Sie können weiterhin Ihr eigenes benutzerdefiniertes Objekt verwenden, das diesem Objekt gewährt wurde - vorausgesetzt, es implementiert android.os.Parcelable.

Verwandte Themen