TP00 Convertisseur de devises I. Création de l`interface

Transcription

TP00 Convertisseur de devises I. Création de l`interface
M2-SILI
Développement sous Android
TP00
année 2016/2017
Convertisseur de devises
Ce TP consiste à réaliser un convertisseur de devises. L'utilisateur pourra saisir un montant en euros
et la conversion de ce montant vers d'autres devises apparaîtra à l'écran.
I. Création de l'interface
L'interface principale est assez simple, elle est composée d'un champ d'édition (un EditText) avec
son titre (un TextView) pour saisir le montant que l'on veut convertir puis d'une liste de devises avec
la conversion obtenue.
L'activité est donc ici une ListActivity avec un « Adapter » spécifique au problème à réaliser. Cet
Adapter n'utilisera plus le rendu par défaut pour instancier les éléments de la liste mais une
ressource XML adaptée (un layout) que vous allez écrire et enregistrer sous le nom de ligne.xml. Le
layout sera donc composé de deux widget ImageView. Le constructeur de l'Adapter doit donc
rappeler le constructeur de sa super classe pour prendre en compte le layout pour l'inflation. Il faut
aussi redéfinir la méthode getView qui est appelée chaque fois qu'un élément de la liste a besoin
d'être affiché. C'est dans cette méthode que vous allez instancier le layout ligne.xml avec les
bonnes valeurs. La fonction getView doit retourner une View correspondant à la ligne correctement
instanciée. Pour cela il est nécessaire de créer un LayoutInflater qui chargera le layout décrit dans
ligne.xml, puis modifiera les champs du layout en affectant les valeurs correspondant à la devise
que l'on souhaite afficher.
Un menu d'options doit être ajouté pour rafraîchir les montants convertis lorsque l'utilisateur à
modifié le montant de référence en euros. Pour afficher le menu d'options, il faut redéfinir la
méthode onCreateOptionsMenu de l'activité (vue en cours). Pour déclencher une action lorsque
l'utilisateur clique sur une des options du menu, il faut redéfinir la méthode
onOptionsItemSelected.
1/2
M2-SILI
Développement sous Android
année 2016/2017
Les devises ainsi que leur valeur de conversion sont lues depuis un fichier qui sera fourni comme
« assets » dans votre application. Vous pouvez le télécharger en suivant le lien :
http://www.info.univ-angers.fr/pub/barichar/page_perso/enseignements/android/ taux_20141028.csv
L'activité devra, à son lancement, charger les données du fichier de devises dans l' Adapter lié à la
ListView. Lorsque l'information quant à la devise n'est pas disponible, un « Not available » est
affiché. L'utilisateur peut changer la valeur du champs de texte et lorsqu'il appuie sur l'item
« Refresh » du menu d'options, tous les montants sont recalculés et affichés.
Vous devez utilisez le processus d'inflation dès que possible, que cela soit pour les
éléments de la liste ou les items du menu d'options !
Pour la lecture du fichier texte contenant les devises, vous pouvez utiliser les fonctions usuelles de
Java concernant la lecture des fichiers.
II. Mise à jour automatique des montants
Afin de rendre l'application plus agréable à utiliser, vous devez faciliter la saisie en modifiant les
options du champ texte concernant l' « inputType » ainsi que celui des « imeOptions » de
manière à ce qu'un pavé numérique soit affiché. Lorsque l'utilisateur appuie sur « OK », le clavier
disparaît, laissant apparaître toute la liste (cf. capture d'écran ci-dessous).
Vous allez également faire en sorte que tous les montants de la liste se mettent à jour
automatiquement sans avoir besoin d'appuyer sur « Refresh ». Pour cela, il faut ajouter un
« TextWatcher » au champ texte qui sera chargé de mettre à jour l'Adapter après chaque
modification de la valeur de référence en euros.
2/2