Vous êtes sur la page 1sur 3

Université Abou Bekr Belkaid Tlemcen

Département d’Informatique
3 ème année Licence --- TP Applications mobiles (Android)

TP 6: SQLite et Content Provider


Introduction:
SQLite est une base de données (BDD) relationnelle intégrée au système d’exploitation
Android. Elle permet aux applications Android de sauvegarder localement des données
structurées ce qui implique une persistance de contenu de manière hors ligne.

Le fournisseur de contenu (content provider) est un composant applicatif permettant à une


application d’exposer ses données (exp : BDD SQLite) afin qu’elles puissent être utilisées par
d’autres applications.

On aimerait développer une (pseudo) application qui permet de planifier et de gérer la liste des
tâches à faire lors de la réalisation d’un projet.

Objectifs:
1. Manipuler l’utilisation des BDD SQLite sous Android.
2. Apprendre à définir, à utiliser et à manipuler un fournisseur de contenu.

Description de l’application: l’interface de l’application est donnée dans la figure Fig1.


1. L’utilisateur doit saisir le nom de la tâche, sa priorité, son état d’avancement ainsi que
sa date d’échéance (deadline). La priorité d’une tâche est catégorisée en trois niveaux :
FAIBLE, MOYENNE et ELEVEE. L’état d’avancement peut être DONE,
PARTIALLY-DONE, ou NOT-YET.
2. Via un bouton nommé « Ajouter la tâche», l’utilisateur peut insérer une nouvelle tâche
dans la BDD de l’application.
3. Via un bouton nommé « Afficher les tâches», l’utilisateur peut consulter toutes les
tâches disponibles dans la BDD.
4. Les tâches déjà réalisées (état d’avancement =DONE) peuvent être retirées de la BDD
via le bouton « Supprimer les tâches réalisées».
5. A partir d’une autre application (Client), l’utilisateur a la possibilité de visualiser la liste
des tâches de la BDD crée par l’application initiale.

Partie 1: BDD SQLite


1. Créer une nouvelle application ayant 4 classes (BDDHelper, GestionBDD,
MainActivity, TasksContentProvider).
Université Abou Bekr Belkaid Tlemcen

2. Copier/coller le code du fichier activity_main.xml pour obtenir l’interface de la


figure Fig1. Récupérer les ressources String du fichier strings.xml (ref. Fig2) .
3. Copier le code de la classe BDDHelper permettant de créer une BDD contenant une
seule table, nommée « Planning», ayant 5 colonnes : ID, NOM, PRIORITE,
DEADLINE, ETAT.
4. Copier le code de la classe GestionBDD afin de définir les méthodes permettant de
manipuler la BDD crée. Compléter la méthode « insererTache » en déterminant, à
partir des paramètres d’entrée, les valeurs de l’objet ContentValues nommé « ligne ».
5. Implémenter la méthode « obtenirTache » afin d’appeler la méthode « query » de
SQLiteDatabase.
6. Copier le code de la classe MainActivity afin d’attribuer à chaque bouton l’appel à la
méthode correspondante. Analyser le code puis exécuter l’application.

Partie 2: Content Provider


1. Copier le code de la classe TasksContentProvider puis compléter la méthode
« query » afin de récupérer la BDD puis appeler sa méthode locale « query ».
2. Enregistrer le content provider dans le fichier Manifest.xml en lui attribuant l’autorité
« com.tp6.provider ».
3. Créer une seconde application (Client) ayant l’interface décrite dans le fichier
activity_main2. Dans son fichier Manifest.xml, ajouter la balise <queries> suivante
juste avant la balise <application>.
<queries>
<package android:name="com.example.nomdelapplicationinitiale"/>
</queries>

4. Copier le code du fichier MainActivity2 puis compléter la méthode


« getDataFromBDD » afin d’interroger la BDD de l’application initiale.
Université Abou Bekr Belkaid Tlemcen

<resources>

<string name="app_name">SQLiteBDDApp<
>SQLiteBDDApp</string>
<string name="task_name">Nom
>Nom de la tâche </string>
</
<string name="task_prio">Priorité</
>Priorité</string>
<string name="task_state">Etat
>Etat d\'avancement</string>
d
<string name="task_deadline">Date
>Date d\'échéance</string>
d
<string name="bout_add_task">Ajouter
>Ajouter une nouvelle
tâche</string>
<string name="bout_view_task">Afficher
>Afficher les tâches/>
tâches
<string name="bout_delete_task"
="bout_delete_task">Supprimer les tâches
réalisées </string>

<string-array name="priorite">
>
<item> Faible </item>
<item> Moyenne </item>
<item> Elevée </item>
</string-array>

<string-array name="etat">
<item> Not yet </item>
<item> Partially done </item
item>
<item> Done </item>
</string-array>

</resources>

Fig 1 : schéma de l'application Fig 2 : strings.xml

Vous aimerez peut-être aussi