Home / Programmazione / Java Android / Usare le SharedPreferences in Android
Mattepuffo

Usare le SharedPreferences in Android

Usare le SharedPreferences in Android

Tra le opzioni di storage in Android abbiamo le SharedPreferences.

Queste ci permetto di salvare dei dati in formato chiave:valore in maniera molto semplice e intuitiva.

Ho visto in giro addirittura esempi di salvataggio di dati presi da JSON tramite la rete; ecco, forse non è proprio questo lo scopo, ma di sicuro è prefetto per pochi dati da condividere in tutta la app.

Infatti viene usato soprattutto per il salvataggio delle impostazioni / preferenze dell'utente.

Vi posto qua sotto una semplice classe che prevede la creazione, lettura ed eliminazione dei valori:

public class Preferences {

    private SharedPreferences prefs;

    public Preferences(Context ctx) {
        prefs = ctx
                .getSharedPreferences("MY_APP", Context.MODE_PRIVATE);
    }

    public void setPrefs(String key, String value) {
        SharedPreferences.Editor prefsEditor = prefs.edit();
        prefsEditor.putString(key, value);
        prefsEditor.commit();
    }

    public String getPrefs(String key, String value) {
        return prefs.getString(key, value);
    }

    public void removePrefs(String key) {
        SharedPreferences.Editor prefsEditor = prefs.edit();
        prefsEditor.remove(key);
        prefsEditor.commit();
    }
}

Al costruttore dobbiamo passare solo un oggetto Context.

Al metodo getSharedPreferences dobbiamo passare due parametri: il nome, che in pratica indica la app nella quale viene usata, e la modalità di condivisione, in questo privata e quindi usabile solo dalla app che lo richiama.

Sotto abbiamo tre metodi abbastanza esplicativi.

Il primo serve per settare un valore, che ricordo è in formato chiave:valore.

Il secondo serve per prendere un dato valore.

Il terzo per rimuoverlo.

A questo punto nella nostra Activity abbiamo una cosa del genere:

Preferences prefs prefs = new Preferences(getApplicationContext());
System.out.println(prefs.getPrefs("USER", "matteo"));

Il metodo getPrefs prende il valore della chiave data; se non c'è valore ne imposta uno di default.

Molto easy!