Sauvegarder des éléments – SharedPreferences
Sauvegarder des éléments – SharedPreferences
Introduction
Android permet de stocker les données nécessaires au bon fonctionnement d’une
application, et cela de plusieurs manières. Tout dépend des caractéristiques du
stockage dont vous avez besoin :
• SharedPreferences : permet de stocker les données sous forme de couple clé/valeur
• Fichiers : permet de stocker des données des fichiers (créés sur la mémoire interne
ou externe de l’appareil
• Sauvegarder dans une base de données : permet de créer la base de données
SQLite afin de stocker les données nécessaires au fonctionnement de l’application
Sauvegarder des éléments – SharedPreferences
Principe (1)
• La classe SharedPreferences fournit un ensemble de méthodes permettant
de stocker et de récupérer facilement un couple clé/valeur pour contenir
des valeurs (float, int, string,Parcelable..)
• Ces données restent persistantes jusqu’à la désinstallation de l’application
Sauvegarder des éléments – SharedPreferences
Principe (1)
La première étape nécessaire à l’utilisation des données SharedPreferences consiste à
récupérer une instance de cette classe selon deux façons possibles :
1. Les SharedPreferences sont à récupérer avec getPreferences(int mode) : on
utilise cette méthode si on a besoin d’un seul et unique fichier de préférences
dans toute votre application. Avec mode prend l’une des valeurs suivantes :
✓ Context.MODE_PRIVATE : le fichier est privé donc réservé à votre application
✓ Context.MODE_WORLD_READABLE : les autres applications peuvent lire le fichier
✓ Context.MODE_WORLD_WRITEABLE : les autres applications peuvent modifier le fichier
Exemple
Sauvegarder des éléments – SharedPreferences
Principe (2)
2. Les SharedPreferences sont à récupérer
avec getSharedPreferences(String name,int mode) : on utilise cette
méthode si on a besoin de plusieurs fichiers de préférences qu’on peut
identifier par leur nom
Exemple
SharedPreferences
prefs=getSharedPreferences("user_prefs",Context.MODE_PRIVATE);
Sauvegarder des éléments – SharedPreferences
Sauvegarde
• Afin de sauvegarder un élémént, vous devez ouvrir un éditeur,
avec sharedPreferences.edit(),
• vous aurez ensuite accès à toutes les
méthodes .putString(KEY,VALUE), .putInt(KEY,VALUE), etc.
• Une fois vos objets insérés, n’oubliez pas d’appeler la
méthode .commit()
Sauvegarder des éléments – SharedPreferences
Récupération
Une fois l’instance de classe SharedPreferences est récupérée vous pouvez utiliser les
différentes méthodes disponibles pour récupérer les données stockées.
La récupération d’un élément persisté se fait avec les
méthodes .getString(KEY,DEFAULT_VALUE), .getInt(KEY,DEFAULT_VALUE), etc.
Vous pouvez vérifier la présence d’un élément avec .containsKey(KEY)
Exemple1
String unEmail = sharedPref.getString("email", "" );
String unPassword = sharedPref.getString("password", "" );
Exemple2
int compteur = prefs.getInt("cle_integer", 0);
Sauvegarder des éléments – SharedPreferences
Exemple complet
Sauvegarder une seule fois un élément, puis le charger au prochain
démarrage de l’application
Sauvegarder des éléments – SharedPreferences
Exemple complet
Sauvegarder une seule fois un élément, puis le charger au prochain
démarrage de l’application
getSharedPreferences(PREFS,MODE_PRIVATE);
Sauvegarder des éléments – SharedPreferences
Exemple complet
//objectif : sauvegarder 1 seule fois le nom et l'âge de l'utilisateur
//pour cela, on commence par vérifier si on a déjà des éléments sauvegardés
if (sharedPreferences.contains(PREFS_AGE) &&
sharedPreferences.contains(PREFS_NAME)) {
int age = sharedPreferences.getInt(PREFS_AGE, 0);
String name = sharedPreferences.getString(PREFS_NAME, null);
Toast.makeText(this, "Age: " + age + " name: " + name,
Toast.LENGTH_SHORT).show();
}
Sauvegarder des éléments – SharedPreferences
Exemple complet
else {
//si aucun utilisateur n'est sauvegardé, on ajoute [24,Ali]
sharedPreferences
.edit()
.putInt(PREFS_AGE, 24)
.putString(PREFS_NAME, "Ali")
.commit();
Toast.makeText(this, "Sauvegarde effectuée, relancez
l'application pour voir le résultat", Toast.LENGTH_SHORT).show();
}
}
}
Sauvegarder des éléments – SharedPreferences
Suppression (1)
La suppression des données contenues dans un fichier de préférences se fait en utilisant
l’objet Editor de type SharedPreferences.Editor comme pour l’écriture des données.
La méthode remove de l’objet Editor permet de supprimer une association clé-valeur. On
spécifie le nom de la clé en paramètre.
Syntaxe
public abstract SharedPreferences.Editor remove(String key)
Vous pouvez vérifier la présence d’un élément avec .containsKey(KEY)
Exemple
editeur.remove("modeWifi");
Sauvegarder des éléments – SharedPreferences
Suppression (2)
La méthode clear permet de supprimer toutes les données c’est-à-dire toutes les associations
clé-valeurs. Comme pour l’écriture, il faut appeler la méthode commit pour enregistrer les
modifications.
Syntaxe
public abstract SharedPreferences.Editor clear()
Exemple
editeur.clear().commit;