TP1 – Une petite appli de conversion

Il s’agit de faire une application permettant de faire une conversion (de degrés celsius en farenheit, ou de conversion de monnaies, comme vous voulez).

Partie 1 – Interface graphique

1. Créez un projet Android dans eclipse (avec une activité de type BlankActivity). N’oubliez pas d’indiquez un nom de package (par exemple : fr.univ-paris8.master-handi.montp, les noms de package s’écrivent plutôt en minuscules).

2. Ouvrez l’éditeur graphique de layout. Insérer les widgets nécessaires pour notre convertisseur. Le TextView se trouve dans la palette Form Widgets (vous pouvez prendre un « Large »), et l’EditText dans la palette Text Fields.

4. Changez les étiquettes des 2 TextView et du bouton : click droit, menu « Edit Text… » en utilisant plutôt des « Strings » que du directement du texte (cliquez sur le bouton « New string », dans les 2 champs du haut de la boite de dialogue, insérez le texte et un ID.

Partie 2 – Implémentation

1. Ouvrez le source java (dans le navigateur de projet : cherchez le dossier « src », puis trouvez le code de l’activité (par défaut MainActivity.java sauf si vous l’avez changé dans l’assistant de création de projet).

2. Créez des attributs pour garder une référence sur les 2 champs de texte :

  private EditText champTextDecimal, champTextBinaire;

et les associer aux éléments du layout grâce à leurs ID (dans la méthode onCreate) :

  champTextDecimal=(EditText) findViewById(R.id.editTextDec);

Ici l’ID a été modifié (l’ID par défaut est « edittext1 »). On trouve les ID par un click droit sur l’objet correspondant dans l’éditeur graphique d’écrans (menu « Edit Id »).

3. Toujours dans la méthode onCreate, déclarer la classe courante comme listener du bouton. Cela nous permettra de traiter les événements en provenance du bouton.

  Button b=(Button) this.findViewById(R.id.buttonConv);
  b.setOnClickListener(this);

Il n’est pas nécessaire de garder la référence au bouton en attribut (sauf si on a besoin de changer fréquemment le texte présent sur le bouton).

Maintenant il faut que la classe courante (MainActivity) implémente l’interface OnClickListener, et donc implémenter la méthode :

public void onClick(View v)

.

Dans un premier temps on enverra simplement un « toast« , c’est à dire un message temporaire à l’utilisateur :

Toast.makeText( getApplicationContext(), 
                "texte du message", 
                Toast.LENGTH_SHORT).show();

4. Implémentez la méthode de conversion : allez chercher le texte saisi dans le champs correspondant (attention la méthode getText() de EditText ne renvoie pas directement un String, il faut le convertir, par exemple, en utilisant « toString()« , puis convertir cette chaîne en entier. On utilisera la méthode « setText(…) » pour placer le résultat dans le champ de saisie correct.

5. On remarque que cette application ne fonctionne que dans un sens. Ajoutez un second bouton pour faire la conversion inverse, et implémentez la. Maintenant que nous aurons 2 boutons, la méthode de traitement des événements (onClick) doit faire la différence entre les 2. Pour cela on utilisera la méthode getId() de l’objet View passé en argument, et on le comparera à l’ID du bouton.

6. Cherchez sur Internet la façon de se passer des boutons de conversion : comment faire pour que la conversion se fasse en temps réel, à chaque fois qu’on entre un chiffre dans le champs de saisie.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *