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!