PROJET FIN DE SEMESTRE ANDROID : GEOWORLD

Transcription

PROJET FIN DE SEMESTRE ANDROID : GEOWORLD
PROJET FIN DE SEMESTRE ANDROID : GEOWORLD
Pré-requis :
- Avoir fait les différents tutoriels Android, notamment celui sur les listview et la lecture d'un fichier
au format JSON ( voir tuto M.Chamillard ).
- Faire le tutoriel en ligne : http://tutos-android-france.com/listview-afficher-une-liste-delements/
- annexes :
➢ lecture d'un fichier au format JSON
➢ Obtenir l'id d'une ressource à partir de son nom :
http://stackoverflow.com/questions/3476430/how-to-get-a-resource-id-with-a-knownresource-name
➢ AlertDialog Android : http://www.androidhive.info/2011/09/how-to-show-alert-dialog-inandroid/
Projet :
A partir du fichier JSON : country.json et du dossier : drapeau (contenant le drapeau de
chaque pays) afficher les pays dans une ListView Android.
La ListView n'affichera que les informations sommaires du pays (nom, capitale , drapeau …).
Lorsque l'on cliquera sur un pays des informations plus complètes devront s'afficher dans une
AlertDialog.
Envisager une évolution de votre activité, comme par exemple un affichage des pays par
continent ou tout autres fichiers JSON que vous pouvez trouver sur le site :
http://www.geonames.org/
Exemple de réalisation :
Annexe : lecture d'un fichier JSON
(source Wikipédia)
JSON (JavaScript Object Notation) est un format de données textuelles dérivé de la
notation des objets du langage JavaScript. Il permet de représenter de l’information
structurée comme le permet XML par exemple. Créé par Douglas Crockford entre 2002 et
2005, il est décrit par la RFC 7159 de l’IETF.
Un document JSON a pour fonction de représenter de l'information accompagnée
d'étiquettes permettant d'en interpréter les divers éléments, sans aucune restriction sur le
nombre de celles-ci.
Un document JSON ne comprend que deux types d'éléments structurels :
•des ensembles de paires nom / valeur ;
•des listes ordonnées de valeurs.
Ces mêmes éléments représentent trois types de données :
•des objets ;
•des tableaux ;
•des valeurs génériques de type tableau, objet, booléen, nombre, chaîne ou null.
Exemple : soit le fichier JSON suivant
{
"contacts": [
{
"id": "c200",
"name": "Ravi Tamada",
"email": "[email protected]",
"address": "xx-xx-xxxx,x - street, x - country",
"gender" : "male",
"phone": {
"mobile": "+91 0000000000",
"home": "00 000000",
"office": "00 000000"
}
},
{
"id": "c201",
"name": "Johnny Depp",
"email": "[email protected]",
"address": "xx-xx-xxxx,x - street, x - country",
"gender" : "male",
"phone": {
"mobile": "+91 0000000000",
"home": "00 000000",
"office": "00 000000"
}
},
.
]
}
Si le nœud JSON commence par [ , on utilise la méthode getJSONArray(), cette méthode va
construire un ArrayList d'objet .
Si le nœud JSON commence par { , on utilise la méthode getJSONObjet(), cette méthode va
retourner un objet JSON
// on obtient tous les contacts
JSONArray jsonArray = jsonRootObject.optJSONArray("contacts");
// on parcourt la liste des contacts
for(int i=0; i < jsonArray.length(); i++){
// on obtient chaque objet de la liste
JSONObject jsonObject = jsonArray.getJSONObject(i);
String id =jsonObject.getString("id");
String nom = jsonObject.getString("name");
//phone est un nouveau nœud JSON
JSONObject phone = jsonObject.getJSONObject("phone");
String phoneMobile = phone.getString("mobile");
}
Ce code va permettre de récupérer l'id, le nom et le mobile de chaque contact.

Documents pareils