Vous êtes sur la page 1sur 4

Atelier : Dveloppement dans les rseaux mobiles STIC-L2-B

201-201! IS"T#Com

LAB3 : Bases de Donnes(SQLite)

Dure de Lab : 3H
Enseignant : Marouene Boubakri
<maroueneboubakri@hotmail.com>

Objectif :

On veut, dans ce TP, construire une application Android qui permet de grer des contacts
(essentiellement un nom associ un numro de tlphone). Ces contacts seront mis dans une
base de donnes Android gre par SQLite
Travail faire :
Section 1 : Construction de la base de donnes
1. Dfinir une classe Contact contenant les informations :

public class Contact {
private int _id;
private String nom;
private String numTelephone;
...
}

Complter cette classe avec des accesseurs et des constructeurs appropris ( la souris sous
Eclipse !)

2) Construire un "Database Helper" permettant de grer une base de donnes.

Le dbut de cette
classe est :
public class LeDatabaseHandler extends SQLiteOpenHelper {
// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "contactsManager";
// Contacts table name
private static final String TABLE_CONTACTS = "contacts";
// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
Atelier : Dveloppement dans les rseaux mobiles STIC-L2-B

201-201! IS"T#Com

private static final String KEY_PH_NO = "phone_number";
// A complter ...
}

3) Complter cette classe de sorte :
a) Crer la base de donnes
b) Pouvoir insrer des Contacts dans cette base
c) Rcuprer tous les contacts de la base l'aide de la mthode :

public List<Contact> getAllContacts() { ... }

4) Manipuler cette base l'aide d'une activit principale possdant la mthode :

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LeDatabaseHandler db = new LeDatabaseHandler(this);

Log.d("JMF", "Insertion de Contact");
db.addContact(new Contact("Mohamed", "9100000000"));
db.addContact(new Contact("Ali", "9199999999"));
db.addContact(new Contact("Mariem", "9522222222"));
db.addContact(new Contact("Sarra", "9533333333"));
// Reading all contacts
Log.d("JMF", "Lecture des Contacts");
List<Contact> contacts = db.getAllContacts();
for (Contact cn : contacts) {
String log = "Id: "+cn.getID()+" ,Name: " + cn.getName() + " ,Phone:
"
+ cn.getPhoneNumber();
// Writing Contacts to log
Log.d("JMF", log);
}
}







Atelier : Dveloppement dans les rseaux mobiles STIC-L2-B

201-201! IS"T#Com

Section 2: Une IHM pour manipuler une base de donnes
1) Dfinir une activity qui fait afficher :

Il s'agit d'une TextView ("Voulez vous ?") suivi d'une ListView 4 items
2) Ajouter le code de sorte que lorsque l'utilisateur clique sur l'item "Initialisation de la
base !",
la base (table) est recre avec 4 Contacts. On rappelle que le code de gestion d'une
ListView est :
liste.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if (position == 0) {
// traitement si l'utilisateur a choisi le premier item de la
ListView
} else { ...
}
}
});


3) De mme, crivez le code qui affiche tous les contacts lorsque l'utilisateur a choisi le
premier item.
On pourra utiliser un TableLayout.



Atelier : Dveloppement dans les rseaux mobiles STIC-L2-B

201-201! IS"T#Com

4. ) Ecrire une activity qui affiche :

Cette activit est lance lorsque l'utilisateur slectionne l'item "Ajouter un contact".
Ecrire le code permettant d'ajouter un Contact dans la base de donnes grce cette interface.
5) Ecrire l'activit qui prsente tous les contacts dans une ListView pour pouvoir en
modifier.
Par la suite, lorsque l'utilisateur choisit un des contacts, une nouvelle activit est affiche,
initialise par le nom du Contact modifier.
Il faudra donc passer le Contact d'une activit une autre. Pour cela on utilisera le code (peut
tre adapter) :
Contact ctAModifier = arContacts.get(position);
Intent i = new Intent(getApplicationContext(),
ContactAModifierActivity.class);
Bundle b = new Bundle();
b.putSerializable(Constants.CONTACT, ctAModifier);
i.putExtras(b);
startActivity(i);
Pour rcuprer ce Contact dans l'activit destinataire on peut crire le code :
Bundle b = this.getIntent().getExtras();
if (b != null) {
ct = (Contact)(b.getSerializable(Constants.CONTACT));
}
6) Enrichir l'activit qui prsente tous les contacts dans une ListView pour pouvoir en
dtruire le contact choisi par l'utilisateur.
On pourra construire de nouvelles activits ou enrichir
celles dj dveloppes.
Conclusion
On a bien mis en place toutes les oprations CRUD, Create, Read, Update, Delete

Source du TP : http://cedric.cnam.fr/~farinone/NFA025/enonceTPSQLite.pdf