Android - Come faccio a impostare una preferenza in codice
-
23-08-2019 - |
Domanda
Ho un'applicazione Android in cui ho le mie preferenze in un file XML, che funziona bene. Ora voglio impostare una delle preferenze utilizzando il codice invece di visualizzare l'intera schermata delle preferenze, come dovrei andare a fare questo?
Soluzione
presumo dalle preferenze si fa riferimento a preferenze dell'applicazione e le impostazioni del telefono non Android.
Per memorizzare le preferenze tra i percorsi di voi l'applicazione è necessario eseguire le seguenti operazioni
-
Creare uno SharedPreferences oggetto
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
String n identifica le preferenze e il secondo argomento è la modalità essi saranno accessibili
-
un'istanza di un oggetto Editor
SharedPreferences.Editor editor = settings.edit();
Nota: non provare settings.editor.edit (), questo non farà un oggetto persistente e il codice qui sotto non funziona
-
Scrivi le tue preferenze per il buffer
editor.put...(String, value)
Ci sono numerosi funzione put, putString, putBoolean, ecc la stringa è la chiave ( "versione", "buona corsa") e il valore è il valore ( "1.5.2", true)
-
Lavare il buffer
editor.commit();
Questo scrive in realtà si mette alle preferenze. Se la vostra applicazione si blocca prima di questa linea allora le preferenze non verranno scritti. V'è anche un problema documentato: commit () deve restituire un valore booleano che indica il successo o il fallimento. Ultimo ho controllato sempre restituito falso.
Queste preferenze verranno dal memorizzati sul telefono e disponibili solo quando per l'applicazione.
Altra documentazione è qui
Altri suggerimenti
Ho provato a farlo, ma non ha funzionato:
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
Prova a modificare:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
È possibile salvare qualcosa nei sharedpreferences utilizzando sottostante codice
public static void save(String valueKey, String value) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
SharedPreferences.Editor edit = prefs.edit();
edit.putString(valueKey, value);
edit.commit();
}
Per leggere le preferenze:
public static String read(String valueKey, String valueDefault) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
return prefs.getString(valueKey, valueDefault);
}