Shared Preferences
Android prend en charge l’utilisation de la classe SharedPreferences pour persister des paires clé-valeur (ou
appelées « préférences ») de types primitifs dans un système de fichiers Android.
1. Initialisation
A l’aide de la méthode getSharedPreferences() présente dans le context, on récupère un objet SharedPreferences
désignant un emplacement spécifique
SharedPreferences settings = getSharedPreferences( « mydictionnary » , Context.MODE_PRIVATE) ;
Le premier paramètre représente le nom du dictionnaire qui contiendra toutes les clés/valeurs
associés
Context.MODE_PRIVATE permet de définir la visibilité du dictionnaire
2. Ajouter / Ecrire des données
Pour ajouter ou écrire des données dans les préférences, il faut d’abord récupérer l’instance d’ Editor associée à
l’instance de SharedPreferences en cours.
Editor edit = [Link]();
[Link](« username », « new_value_for_user »);
[Link]();
Il existe une fonction associée à chaque type primitif de java :
putBoolean(String key, bool value) permet l’enregistrement d’un booléen
putFloat(String key, float value) permet l’enregistrement d’un float
putInt(String key, int value) permet l’enregistrement d’un int
putLong(String key, long value) permet l’enregistrement d’un long
putString(String key, String value) permet l’enregistrement d’un String
3. Lire des données
Les valeurs stockées dans les préférences sont accessibles via l’instance de la classe SharedPreferences et la clé
associée comme ci-dessous :
String url = [Link](« url », « valeur défaut » );
Le premier paramètre représente la clé concernée
Le second paramètre représente la valeur par défaut (si la clé demandée n’existe pas)
Comme pour l’écriture de données, il existe une fonction associée à chaque type primitif de java
4. Suppression
Pour supprimer une préférence, il suffit d’appeler la méthode remove(String key) de l’Editor avec en paramètre la
clé associée
[Link](« url ») ;
Pour que toute modification soit enregistrée, ne pas oublier d’appeler les méthodes apply() ou commit().
5. commit() fonctionne de façon synchrone
6. apply() fonctionne de façon asynchrone