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?

È stato utile?

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

  1. 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

  2. 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

  3. 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)

  4. 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);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top