Comprendre les préférences dans Android
Les préférences dans une application Android sont des mécanismes utilisés pour sauvegarder les paramètres de l’utilisateur et les configurations de l’application. Elles permettent à une application de conserver des données primaires sous forme de paires clé-valeur, souvent stockées dans des fichiers XML. Cela facilite la gestion des options et des choix de l’utilisateur, permettant une utilisation personnalisée de l’application.
Accéder aux préférences partagées
Pour accéder aux préférences, vous devez d’abord créer une instance de SharedPreferences. Cela se fait en utilisant la méthode getSharedPreferences
et en lui passant le nom du fichier de paramètres ainsi que le mode d’accès. Par exemple, pour créer un fichier de préférences nommé « UserSettings », vous écrirez :
SharedPreferences preferences = getSharedPreferences("UserSettings", Context.MODE_PRIVATE);
Cette opération vous permettra d’accéder aux valeurs stockées et de les manipuler selon vos besoins.
Enregistrer des préférences dans Android
Pour sauvegarder des valeurs dans SharedPreferences, le processus est simple et en trois étapes :
- Commencez par initialiser l’objet SharedPreferences avec la méthode
edit()
qui permet de créer un editor. - Ajoutez les valeurs que vous souhaitez sauvegarder en utilisant les méthodes
putString
,putInt
, etc., selon le type de données. - Pour finaliser l’enregistrement, appelez
commit()
ouapply()
, ce qui rendra les modifications effectives.
Voici un exemple de sauvegarde d’un nom d’utilisateur :
SharedPreferences.Editor editor = preferences.edit();
editor.putString("username", "JohnDoe");
editor.apply(); // ou editor.commit();
Où sont stockées les préférences dans Android ?
Les préférences partagées sont stockées dans un fichier XML au sein du répertoire privé de l’application sur le périphérique. Elles se trouvent dans le dossier shared_prefs
, localisé dans DATA/data/{package_name}
. Ce répertoire est uniquement accessible par l’application, garantissant ainsi la sécurité des données stockées.
Désactiver les préférences
Pour activer ou désactiver les préférences, notamment une case à cocher, il est possible d’utiliser la méthode setEnabled()
. Si l’on souhaite désactiver une préférence, vous pouvez appeler cette méthode avec la valeur false
. Pour la réactiver, il suffit de passer true
.
Supprimer des préférences dans Android
Pour effacer une préférence spécifique, utilisez remove()
sur votre éditeur SharedPreferences. Voici la syntaxe à suivre :
editor.remove("keyName").commit();
Cette action supprimera la valeur associée à la clé « keyName » des préférences partagées.
Vérifier si des préférences existent
Pour savoir si une préférence avec une certaine clé existe, vous pouvez utiliser la méthode contains()
. Cela vous permettra de vérifier la présence de données avant d’essayer de les récupérer :
boolean exists = preferences.contains("keyName");
Cette vérification est utile pour éviter des erreurs lors de la tentative d’accès à des préférences non définies.
Utilisation des préférences en Kotlin
En Kotlin, l’accès aux préférences partagées est similaire à celui en Java, mais utilise la syntaxe idiomatique de Kotlin. Voici un exemple simple pour récupérer une chaîne :
val sharedPreferences = getSharedPreferences("AppName", Context.MODE_PRIVATE)
val username = sharedPreferences.getString("username", null)
FAQ
1. Quelles types de données peuvent être stockées dans SharedPreferences ?
Les préférences partagées peuvent stocker des données primitives comme des chaînes, des entiers, des flottants, des booléens et des longs.
2. Est-ce que SharedPreferences est sécurisé ?
Non, les données stockées dans SharedPreferences ne sont pas automatiquement sécurisées. Pour les données sensibles, il est recommandé de chiffrer les informations avant de les stocker.
3. Peut-on stocker des listes ou des tableaux dans SharedPreferences ?
Directement non. Toutefois, vous pouvez convertir une liste en chaîne JSON en utilisant une bibliothèque comme Gson, puis stocker cette chaîne dans SharedPreferences.