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.