import android.preference.PreferenceManager;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// then you use
prefs.getBoolean("keystring", true);
Aggiornare
Secondo le preferenze condivise | Tutorial per sviluppatori Android (parte 13) di Sai Geetha MN,
Molte applicazioni possono fornire un modo per acquisire le preferenze dell'utente sulle impostazioni di un'applicazione specifica o di un'attività. A supporto di ciò, Android fornisce un semplice set di API.
Le preferenze sono in genere coppie valore-nome. Possono essere memorizzati come "Preferenze condivise" tra le varie attività in un'applicazione (notare che attualmente non può essere condiviso tra i processi). Oppure può essere qualcosa che deve essere memorizzato in modo specifico per un'attività.
Preferenze condivise: le preferenze condivise possono essere utilizzate da tutti i componenti (attività, servizi ecc.) Delle applicazioni.
Preferenze gestite dall'attività: queste preferenze possono essere utilizzate solo nell'ambito di un'attività specifica e non possono essere utilizzate da altri componenti dell'applicazione.
Preferenze condivise:
Le preferenze condivise sono gestite con l'aiuto del getSharedPreferences
metodo della Context
classe. Le preferenze sono memorizzate in un file predefinito (1) oppure è possibile specificare un nome file (2) da utilizzare per fare riferimento alle preferenze.
(1) Il modo consigliato è di utilizzare la modalità predefinita, senza specificare il nome del file
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
(2) Ecco come ottenere l'istanza quando si specifica il nome del file
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
è la modalità operativa per le preferenze. È la modalità predefinita e significa che il file creato sarà accessibile solo dall'applicazione chiamante. Altre due modalità supportate sono MODE_WORLD_READABLE
e MODE_WORLD_WRITEABLE
. In MODE_WORLD_READABLE
altre applicazioni è possibile leggere il file creato ma non è possibile modificarlo. In caso diMODE_WORLD_WRITEABLE
altre applicazioni hanno anche le autorizzazioni di scrittura per il file creato.
Infine, una volta che hai l'istanza delle preferenze, ecco come puoi recuperare i valori memorizzati dalle preferenze:
int storedPreference = preferences.getInt("storedInt", 0);
Per memorizzare i valoriSharedPreference.Editor
nell'oggetto file delle preferenze deve essere utilizzato. Editor
è un'interfaccia nidificata nella SharedPreference
classe.
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Editor supporta anche metodi come remove()
e clear()
per eliminare i valori delle preferenze dal file.
Preferenze attività:
Le preferenze condivise possono essere utilizzate da altri componenti dell'applicazione. Ma se non è necessario condividere le preferenze con altri componenti e si desidera avere preferenze private di attività, è possibile farlo con l'aiuto del getPreferences()
metodo dell'attività. Il getPreference
metodo utilizza il getSharedPreferences()
metodo con il nome della classe di attività per il nome del file delle preferenze.
Di seguito è riportato il codice per ottenere le preferenze
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
Anche il codice per memorizzare i valori è lo stesso del caso delle preferenze condivise.
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
È inoltre possibile utilizzare altri metodi come la memorizzazione dello stato delle attività nel database. Nota Android contiene anche un pacchetto chiamatoandroid.preference
. Il pacchetto definisce le classi per implementare l'interfaccia utente delle preferenze dell'applicazione.
Per vedere altri esempi, controlla il post di archiviazione dei dati di Android sul sito degli sviluppatori.