2012-08-10 11 views

risposta

5

per quanto ne so, è possibile salvare solo i dati primitivi (ei loro involucri) a SharedPreferences

perché non creare il proprio metodo di supporto che sarà scorrere Bundle e salvare tutti i valori da esso per SharedPreferences ?

+2

SharedPreferences si intende per memorizzare tipi semplici, ma suppongo che si possa serializzare il vostro pacco in un array di byte e gettato in una stringa. Si potrebbe obiettare che si sta rimuovendo lo sforzo di mantenere le proprie SharedPreferences allo sforzo di mantenere un pacchetto. – Sparky

+0

Il mio approccio è preferire metodi e tecniche che già esistono nel framework invece di "re-inventare la ruota". La mia domanda era mirata a scoprire se un tale metodo di supporto esiste già nell'SDK di Android o dovrei creare il mio. Penso che tu abbia risposto alla mia domanda. +1. – ateiob

+0

@Sparky * "Si potrebbe obiettare che si sta ** spostando lo sforzo ** di mantenere le proprie SharedPreferences allo sforzo di mantenere un pacchetto." * - Mi identifico molto con questo, ma sto esaminando la possibilità di usare 'Bundle.writeToParcel() ', quindi serializzandolo su' String', sembra molto più generico ed efficiente di dover aggiornare il metodo helper ogni volta che viene aggiunta una nuova variabile di stato. – ateiob

13

SharedPreferences sono serializzati su XML, motivo per cui è possibile utilizzare solo tipi semplici. Dovrai effettuare la conversione del bundle alle singole proprietà SharePreferences o serializzare il bundle in un altro modo su disco.

Ecco un documento di buon riferimento discutere le varie possibilità di memorizzare i dati in Android: http://developer.android.com/guide/topics/data/data-storage.html

+5

+1 per spiegare il motivo * perché * SharedPreferences supporta solo tipi semplici. – ateiob

Problemi correlati