J'ai une Android dans laquelle 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 du code au lieu d'afficher tout l'écran des préférences, comment Je vais faire ça?
Je suppose que par préférences, vous faites référence aux préférences de votre application et non aux paramètres du téléphone Android.
Pour stocker les préférences entre les exécutions de votre application, vous devez procéder comme suit
Créer un objet SharedPreferences
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
La chaîne n identifie vos préférences et le deuxième argument est le mode auquel elles seront accessibles
Instancier un objet Editor
SharedPreferences.Editor editor = settings.edit();
Remarque: n'essayez pas settings.editor.edit (), cela ne fera pas un objet persistant et le code ci-dessous ne fonctionnera pas
Écrivez vos préférences dans le tampon
editor.put...(String, value)
Il existe de nombreuses fonctions put, putString, putBoolean, etc. La chaîne est la clé ("version", "bonne exécution") et la valeur est la valeur ("1.5.2", true )
Vider le tampon
editor.commit();
Cela écrit en fait vous mettez dans les préférences. Si votre application se bloque avant cette ligne, les préférences ne seront pas écrites. Il existe également un bogue documenté: commit () est censé renvoyer un booléen indiquant la réussite ou l'échec. La dernière fois que j'ai vérifié, il retournait toujours faux.
Ces préférences seront enregistrées sur le téléphone et ne seront accessibles qu'à votre application.
Plus de documentation est ici
J'ai essayé mais je n'ai pas fonctionné:
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
Essayez plutôt ceci:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
Vous pouvez enregistrer quelque chose dans les préférences partagées 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 les préférences:
public static String read(String valueKey, String valueDefault) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
return prefs.getString(valueKey, valueDefault);
}