Question

J'ai une application Android où j'ai mes préférences dans un fichier XML, qui fonctionne très bien. Je veux maintenant définir l'une des préférences en utilisant le code au lieu d'afficher l'écran de toute préférence, comment pourrais-je aller sur le faire?

Était-ce utile?

La solution

Je suppose que par les préférences que vous parlez aux préférences de votre application et non pas les paramètres du téléphone Android.

Pour stocker les préférences entre pistes de votre application, vous devez effectuer les opérations suivantes

  1. Créer un objet SharedPreferences

    SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
    

    Chaîne n identifie vos préférences et le second argument est le mode ils sont accessibles

  2. instancier un objet de l'éditeur

    SharedPreferences.Editor editor = settings.edit();
    

    Note: ne pas essayer settings.editor.edit (), cela ne fera pas un objet persistant et le code ci-dessous ne fonctionnera pas

  3. Écrivez vos préférences dans la mémoire tampon

    editor.put...(String, value)
    

    Il y a de nombreuses fonctions de vente, PutString, putBoolean, etc. La chaîne est la clé ( "version", "bon run") et la valeur est la valeur ( "1.5.2", true)

  4. Rincer le tampon

    editor.commit();
    

    Cela écrit en fait, vous mettez les préférences. Si votre application se bloque avant cette ligne, puis les préférences ne seront pas écrites. Il y a aussi un bogue documenté: commit () est censé retourner un booléen indiquant le succès ou l'échec. Dernière je l'ai vérifié toujours retourné faux.

Ces préférences par stockées sur le téléphone et ne seront accessibles à votre application.

Plus de documentation est

Autres conseils

J'ai essayé, mais ne fonctionne pas:

SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);

Essayez ceci:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);

Vous pouvez enregistrer quelque chose dans les sharedpreferences en utilisant le code ci-dessous

public static void save(String valueKey, String value) {
    SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(context);
    SharedPreferences.Editor edit = prefs.edit();
    edit.putString(valueKey, value);
    edit.commit();
    }

Pour lire préférences:

public static String read(String valueKey, String valueDefault) {
    SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(context);
   return prefs.getString(valueKey, valueDefault);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top