- Learn
- Guida Android
- Memorizzare informazioni con SharedPreferences
Memorizzare informazioni con SharedPreferences
L’utilizzo dei file come collocazione di dati persistenti è molto duttile. Ai fini della programmazione Android, la possibilità di salvare dati grezzi mediante Stream apre la strada a moltissime possibilità. Si possono salvare file binari, con codifiche proprie, serializzare strutture dati Java o ricorrere a formati “a caratteri” come CSV o altro ancora.
A volte però, si ha solo bisogno di salvare dati in locale, magari di tipo primitivo, come password, indirizzi IP, numeri o altre informazioni di configurazione piuttosto elementari. In questi casi più che confrontarsi con la varietà offerta dai file farebbe comodo una specie di mappa in cui salvare coppie chiave/valore con la possibilità di renderla persistente su disco.
Tutto ciò è disponibile e prende il nome di SharedPreferences.
I dati collocati nelle SharedPreferences vengono salvati in un file XML contenuto nello storage interno, precisamente nella cartella shared_prefs. Il file in cui sono contenute può avere un nome di default o assegnato dal programmatore pertanto di potrà accedere alle Preferences in due modi:
- nella modalità di default con il metodo
getPreferences()
. Questo metodo è concepito per salvare dati privati dell’Activity. Il nome di default prodotto per il file richiamerà infatti il nome dell’Activity; - specificando un nome di file con
getSharedPreferences(String filename, int mode)
dove il primo parametro indica il nome che si vuole dare al file di preferenze mentre il secondo sono i priviligi da concedere al file.
Entrambi i metodi restituiranno un oggetto SharedPreferences sul quale si potrà agire come su di una mappa.
Si noterà subito che un oggetto SharedPreferences contiene tipici metodi di lettura come:
contains(String key)
che verifica se una proprietà con una certa etichetta è già stata salvata;- una serie di metodi getter come
getInt
,getString
,getFloat
e via dicendo con i quali si potrà recuperare i dati salvati per una certa chiave.
Tra gli altri, si vedrà anche un metodo edit()
che restituisce un oggetto di tipo Editor. Questa classe è il meccanismo di modifica delle SharedPreferences.
Dall’Editor si avrà accesso a molti metodi put che permettono di modificare le proprietà. Al termine delle modifiche è molto importante che si richieda il salvataggio delle stesse invocando il metodo apply()
, anch’esso dell’oggetto Editor.
Semplicità delle mappe, utilità della persistenza, se vi si aggiunge la frequenza in cui si necessita di salvare dati così semplici si comprende perchè le SharedPreferences siano considerate uno strumento importantissimo per il programmatore.
Se vuoi aggiornamenti su Android, mobile inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Alessandro Palumbo, Design per MongoDB
Quanto conta il design per le applicazioni basate su MongoDB