Persistance des données 
: Préférences et SQLite 
Saber LAJILI 
Version Janvier 2014
SharedPreferences 
 les préférences sauvegardées dans un fichier .XML 
 Un objet preferences est de type Bundel qui peut contenir des 
paires (clé, valeur) 
 Création : SharedPreferences preferences = 
PreferenceManager.getDefaultSharedPreferences(this); 
 Modification: 
Saber LAJILI 2
SharedPreferences 
 Accès: 
String username = preferences.getString("login", NULL); 
 Opérations de MAJ : 
edit.remove(clé) ; 
edit.clear() ; 
edit.commit() ; 
Edit.getString(clé) 
Edit.putString(clé, valeur) 
Saber LAJILI 3
SharedPreferences 
Exemple 
Saber LAJILI 4
Démo 
Réaliser cette interface avec sauvegarde de login 
de user 
Saber LAJILI 5
SQLite 
 SQLite Open Source intégrée dans Android. 
 SQLite supporte la syntaxe SQL, les transactions 
et les requêtes préparées. 
 Ne nécessite que peu de mémoire lors de 
l'exécution (environ 250 Ko). 
 Ne nécessite aucune tâche de configuration ni 
d'administration 
 Sauvegardé par défaut dans le répertoire: 
DATA/APP_NAME/FILENAME_DB 
 Ne supporte que les types : TEXT, REAL et 
INTEGER 
Saber LAJILI 6
SQLite 
 Création de la base 
 Package « android.database.sqlite » 
 La classe SQLiteOpenHelper 
Méthode : onCreate(), onUpgrade() 
 Manipulation de la base 
 La classe « SQLiteDatabase » 
méthodes :execSQL() , rawQuery, query 
insert (), update () et delete () 
 Résultat de requête : un objet Cursor 
Saber LAJILI 7
Démo 
Il s’agit de créer une interface de gestion des 
commentaires 
Saber LAJILI 8
Démo 
 Démarche suivante: 
1. Créer la base de données : étendre la classe « 
SQLiteOpenHelper » 
2. Créer la classe « Comment » 
3. Créer la classe « DAO » d’accès aux données 
4. Créer la classe de test (main_activity) 
Saber LAJILI 9

3 shared preference_sq_lite

  • 1.
    Persistance des données : Préférences et SQLite Saber LAJILI Version Janvier 2014
  • 2.
    SharedPreferences  lespréférences sauvegardées dans un fichier .XML  Un objet preferences est de type Bundel qui peut contenir des paires (clé, valeur)  Création : SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);  Modification: Saber LAJILI 2
  • 3.
    SharedPreferences  Accès: String username = preferences.getString("login", NULL);  Opérations de MAJ : edit.remove(clé) ; edit.clear() ; edit.commit() ; Edit.getString(clé) Edit.putString(clé, valeur) Saber LAJILI 3
  • 4.
  • 5.
    Démo Réaliser cetteinterface avec sauvegarde de login de user Saber LAJILI 5
  • 6.
    SQLite  SQLiteOpen Source intégrée dans Android.  SQLite supporte la syntaxe SQL, les transactions et les requêtes préparées.  Ne nécessite que peu de mémoire lors de l'exécution (environ 250 Ko).  Ne nécessite aucune tâche de configuration ni d'administration  Sauvegardé par défaut dans le répertoire: DATA/APP_NAME/FILENAME_DB  Ne supporte que les types : TEXT, REAL et INTEGER Saber LAJILI 6
  • 7.
    SQLite  Créationde la base  Package « android.database.sqlite »  La classe SQLiteOpenHelper Méthode : onCreate(), onUpgrade()  Manipulation de la base  La classe « SQLiteDatabase » méthodes :execSQL() , rawQuery, query insert (), update () et delete ()  Résultat de requête : un objet Cursor Saber LAJILI 7
  • 8.
    Démo Il s’agitde créer une interface de gestion des commentaires Saber LAJILI 8
  • 9.
    Démo  Démarchesuivante: 1. Créer la base de données : étendre la classe « SQLiteOpenHelper » 2. Créer la classe « Comment » 3. Créer la classe « DAO » d’accès aux données 4. Créer la classe de test (main_activity) Saber LAJILI 9

Notes de l'éditeur

  • #3 Les activités et les applications peuvent sauvegarder leurs préférences sous la forme de paires clés/valeurs qui persisteront entre deux appels. Les préférences peuvent être propres à une activité ou partagées par toutes les activités d’une application (mode de partage).
  • #4 Les activités et les applications peuvent sauvegarder leurs préférences sous la forme de paires clés/valeurs qui persisteront entre deux appels. Les préférences peuvent être propres à une activité ou partagées par toutes les activités d’une application (mode de partage).
  • #7 SQLite supporte les types de données (TEXT semblable à String dans Java), INTEGER (semblable à longue en Java) et REAL (semblable à double en Java). Tous les autres types doivent être convertis en un de ces champs avant de les enregistrer dans la base de donnéesL'accès à une base de données SQLite comprend l'accès au système de fichiers. Cela peut être lent. Par conséquent, il est recommandé d'effectuer les opérations de base de données de manière asynchrone, par exemple à l'intérieur de la classe AsyncTask.
  • #8 Pour réaliser des opérations d’insertion et de mises à jour de la base de données, on utilise les objets ContentValues qui permettent de définir les paires (clé/valeur). La "clé" représente l'identificateur de colonne de la table et la «valeur» représente le contenu cette colonne.