Les préférences

Les préférences

Introduction


Les préférences c'est une méthode de sauvegarde des variables de type primitif (boolean, int, long, float et string) sous Android de forme (clé, valeur) dans la mémoire interne. Les données sont sauvegardées même si vous quittez l'application mais il est supprimé si vous désinstaller l'application. Le fichier xml, là ou se trouve les données sera dans le chemin /data/data/package_name/shared_prefs/nom_de_fichier.xml
Ce chemin n'est pas accessible que si l'appareil est en mode root, pour plus d'information sur le root d'un appareil il faut chercher la solution sur l'internet car chaque appareil à une méthode différente que l'autre, en utilisant une application comme "Super Manager", "Root Explorer", "Explorer" etc.… pour accéder ce chemin. 
L'appareil est en mode root ou non, n'affecte pas au fonctionnement de cette méthode de sauvegarde des données, il affecte seulement que si je peux voire le fichier xml physiquement dans la mémoire ou non.
Il existe 3 modes de création de ce fichier xml:

 
     -	MODE_PRIVATE 
Qui donne le droit de lire et écrire exclusif pour l'application principale.
- MODE_WORLD_READABLE
Qui donne le droit de lire pour toutes les autres applications.
- MODE_WORLD_WRITEABLE
Qui donne le droit d'écrire pour toutes les autres applications.


Étapes à suivre pour lire


 
 Deux étapes à suivre pour lire:
1- Créer un objet de type "SharedPreferences".
2- Utiliser une des fonctions de lecture.

SharedPreferences


La classe SharedPreferences contient des différentes fonctions pour lire et écrire des couples (clé, valeur) des variables de type primitif dans le fichier xml.
Créer un objet de type SharedPreferences Il existe plusieurs méthodes pour créer un objet de type SharedPreferences, dans ce document on est parlé de deux de ces méthodes:

1- public SharedPreferences getPreferences (int mode)

Récupérer un objet SharedPreferences pour accéder à des préférences qui sont privés de cette activité. 

 Paramètres
mode
Mode de fonctionnement. Utilisez MODE_PRIVATE pour le fonctionnement par défaut, et MODE_WORLD_READABLE,
MODE_WORLD_WRITEABLE pour contrôler les autorisations.
 Retours
Retourne la seule instance SharedPreferences qui peut être utilisé pour récupérer et modifier les valeurs de préférence.

2- public SharedPreferences getSharedPreferences (String name, int mode)

Récupérer le fichier de préférences en lui donnant le nom de ce fichier, en retournant un objet SharedPreferences à travers lequel vous pouvez récupérer et modifier ses valeurs. 

 Paramètres
name
Le fichier de préférences souhaité. Si un fichier de préférences par ce nom n'existe pas, il sera créé lorsque vous récupérez un éditeur (SharedPreferences.edit ()) puis valider les modifications (Editor.commit ()).
mode
Mode de fonctionnement. Utilisez 0 ou MODE_PRIVATE pour le fonctionnement par défaut, et MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE pour contrôler les autorisations.
 Retours
Renvoie un objet SharedPreferences qui peut être utilisé pour récupérer et modifier les valeurs de préférence.

Lire

Pour lire des données on utilise les fonctions suivantes:

1- public abstract boolean getBoolean (String key, boolean defValue)


Récupérer une valeur booléenne à partir des préférences.

 Paramètres
key
Le nom de la préférence pour récupérer.
defValue
Valeur à retourner si cette préférence n'existe pas.
 Retours
Retourne la valeur de préférence si elle existe, ou ValeurParDéfaut. Lance ClassCastException si il y a une préférence à ce nom qui n'est pas un booléen.
 Lance
ClassCastException

2- public abstract int getInt (String key, int defValue)


Récupération d'une valeur de type int à partir des préférences.

 Paramètres
key
Le nom de la préférence pour récupérer.
defValue
Valeur à retourner si cette préférence n'existe pas.
 Retours
Retourne la valeur de préférence si elle existe, ou ValeurParDéfaut. Lance ClassCastException si il ya une préférence à ce nom qui n'est pas un int.
 Lance
ClassCastException

3- public abstract long getLong (String key, long defValue)


Récupération d'une valeur de type long à partir des préférences.

 Paramètres
key
Le nom de la préférence pour récupérer.
defValue
Valeur à retourner si cette préférence n'existe pas.
 Retours
Retourne la valeur de préférence si elle existe, ou ValeurParDéfaut. Lance ClassCastException si il ya une préférence à ce nom qui n'est pas un long.
 Lance
ClassCastException

4- public abstract float getFloat (String key, float defValue)


Récupération d'une valeur de type float à partir des préférences.

 Paramètres
key
Le nom de la préférence pour récupérer.
defValue
Valeur à retourner si cette préférence n'existe pas.
 Retours
Retourne la valeur de préférence si elle existe, ou ValeurParDéfaut. Lance ClassCastException si il ya une préférence à ce nom qui n'est pas un float.
 Lance
ClassCastException

5- public abstract String getString (String key, String defValue)


Récupération d'une valeur de type string à partir des préférences.

 Paramètres
key
Le nom de la préférence pour récupérer.
defValue
Valeur à retourner si cette préférence n'existe pas.
 Retours
Retourne la valeur de préférence si elle existe, ou ValeurParDéfaut. Lance ClassCastException si il ya une préférence à ce nom qui n'est pas un string.
 Lance
ClassCastException

Étapes à suivre pour écrire

 Quatre étapes à suivre pour écrire:
1- Créer un objet de type "SharedPreferences".
2- Créer un objet "editor" de l'objet "SharedPreferences".
3- Utiliser une des fonctions d'écriture.
4- Appeler la fonction commit().

Écrire

Tout d'abord il faut créer un objet de type SharedPreferences comme déjà mentionner ci-dessus ensuite créer un objet de type éditeur pour effectue la modification.

I- public abstract SharedPreferences.Editor edit ()

Créer un nouvel éditeur de ces préférences, à travers lequel vous pouvez apporter des modifications aux données dans les préférences et commettre ces modifications à l'objet SharedPreferences.
Notez que vous devez appeler commit () pour avoir les changements que vous effectuez dans l'éditeur, se présentent dans les SharedPreferences.

 Retours
Retourne une nouvelle instance de l'interface SharedPreferences.Editor, vous permettant de modifier les valeurs dans cet objet SharedPreferences.
1- public abstract SharedPreferences.Editor putBoolean (String key, boolean value)

Définir une valeur booléenne dans l'éditeur de préférences, pour être reprise une fois commit () sont appelés.

 Paramètres
key
Le nom de la préférence à modifier.
value
La nouvelle valeur de la préférence.
 Retours
Renvoie une référence à l'objet éditeur.
2- public abstract SharedPreferences.Editor putInt (String key, int value)

Définir une valeur int dans l'éditeur de préférences, pour être reprise une fois commit () sont appelés.

  Paramètres
key
Le nom de la préférence à modifier.
value
La nouvelle valeur de la préférence.
 Retours
Renvoie une référence à l'objet éditeur.
3- public abstract SharedPreferences.Editor putLong (String key, long value)

Définir une valeur long dans l'éditeur de préférences, pour être reprise une fois commit () sont appelés.

  Paramètres
key
Le nom de la préférence à modifier.
value
La nouvelle valeur de la préférence.
 Retours
Renvoie une référence à l'objet éditeur.
4- public abstract SharedPreferences.Editor putFloat (String key, float value)

Définir une valeur float dans l'éditeur de préférences, pour être reprise une fois commit () sont appelés.

  Paramètres
key
Le nom de la préférence à modifier.
value
La nouvelle valeur de la préférence.
 Retours
Renvoie une référence à l'objet éditeur.
5- public abstract SharedPreferences.Editor putString (String key, String value)

Définir une valeur string dans l'éditeur de préférences, pour être reprise une fois commit () sont appelés.

  Paramètres
key
Le nom de la préférence à modifier.
value
La nouvelle valeur de la préférence.
 Retours
Renvoie une référence à l'objet éditeur.

II- public abstract boolean commit ()

Effectue les modifications demandées, remplace la valeur qui est actuellement dans les SharedPreferences.
Notez que lorsque deux éditeurs sont modifier les préférences dans le même temps, la valeur final sera la valeur de dernier qui appelle commit.

 Retours
Retourne true si les nouvelles valeurs ont été écrites avec succès dans un stockage persistant.

Comments