2012-08-10 4 views
6

ein Verfahren zum Speichern von Mine wurde ein Bundle bestanden Unter der Annahme, bereits mit Daten gefüllt gespeichert werden, ist es eine Möglichkeit, es zu SharedPreferencesohne sie auseinander zu Ints zu nehmen, Schwimmern, Strings zu speichern, usw. ?ein ganzes Bündel an SharedPreferences

Ich bevorzuge den Komfort des Schreibens/Festschreibens alles in "einem Schlag", also, wenn dies nicht möglich ist mit SharedPreferences, was andere persistent Speicher Ansatz würden Sie empfehlen?

Antwort

5

soweit ich weiß, kann man nur primitive Daten speichern (und deren Wrapper) zu SharedPreferences

, warum Sie nicht Ihre eigene Hilfsmethode erstellen, die durch Bundle laufen wird und alle Werte von ihm SharedPreferences speichern ?

+2

SharedPreferences gemeint ist, einfache Typen zu speichern, aber ich nehme an, Sie Ihr Bündel in einen Byte-Array serialisiert werden konnte und es in eine Zeichenfolge. Man könnte argumentieren, dass Sie nur den Aufwand für die Wartung Ihrer SharedPreferences auf die Wartung eines Bundles verlagern. – Sparky

+0

Mein Ansatz ist es, Methoden und Techniken zu bevorzugen, die bereits im Framework existieren, anstatt das Rad neu zu erfinden. Meine Frage zielte darauf ab herauszufinden, ob eine solche Hilfsmethode bereits im Android SDK existiert oder ich sollte tatsächlich meine eigene erstellen. Ich denke, du hast meine Frage beantwortet. +1. – ateiob

+0

@Sparky * "Man könnte argumentieren, dass Sie ** nur den Aufwand ** der Verlagerung Ihrer SharedPreferences auf die Pflege eines Bundles verschieben." * - Ich identifiziere mich sehr damit, aber untersuche die Möglichkeit, 'Bundle.writeToParcel zu verwenden() ', dann serialisiert es zu einem' String', sieht viel generischer und effizienter aus als jedes Mal, wenn eine neue Statusvariable hinzugefügt wird, die Hilfsmethode zu aktualisieren. – ateiob

13

SharedPreferences werden in XML serialisiert, weshalb Sie nur einfache Typen verwenden können. Sie müssen entweder Ihr eigenes Paket in einzelne SharePreferences-Eigenschaften konvertieren oder das Paket auf andere Weise serialisieren.

Hier ist ein gutes Referenzdokument der verschiedenen Möglichkeiten der Speicherung von Daten in Android Diskussion: http://developer.android.com/guide/topics/data/data-storage.html

+5

+1 zur Erklärung des Grundes * warum * SharedPreferences unterstützen nur einfache Typen. – ateiob