Interface utilisateur : création et affichage
Construire une vue pour l'activité PlateauActivity
L'activité PlateauActivity est représentée comme sur l'image ci-dessous.
On la définit en XML et on la contrôle en Java.
Construction de la vue à l'aide de l'outil GraphicalLayout
Dans les menu New > Android XML File :
- dire que c'est un Layout,
- nommer le fichier activity_plateau.xml
- préciser que la racine du fichier xml est un LinearLayout
Avec l'outil, construire l'interface sachant que :
- le texte supérieur (A J0 de jouer ...) est un TextView ;
- les 12 boutons sont dans un TableLayout ; les boutons de la colonne de gauche sont numérotés de 11 à 6 (de haut en bas) et ceux de la colonne de droite de 0 à 5 (de haut en bas)
- le TextView (Partie en cours) est simple
- les deux TextView inférieurs (0 0) sont dans des TableLayout
- tous les éléments sont centrés, et qu'il y a des marges de 10dp autour de chaque block
Associer la vue au fichier XML et la rendre interractive
On crée un objet qui étend LinearLayout, qui gère l’évènement de clic et
qui est lié au fichier XML du dessus comme suit.
public class PlateauView extends LinearLayout implements OnClickListener{
Context ctx = null;
public PlateauView(Context context) {
super(context);
ctx = context ;
LayoutInflater li = ((Activity)context).getLayoutInflater();
li.inflate(R.layout.activity_plateau, this);
...
this.setWillNotDraw(false); // expliquée ci-dessous
Travaux pratiques
- Recopier le code précédent et ajouter les méthodes suffisantes pour implanter OnClickListener
- Pour chacun des objets XMl crées ci-dessus :
- déclarer un attribut privé correspondant
- dans le constructeur, lier l'attribut à l'objet XML
- Ajouter un écouter de clic à chaque bouton comme suit en comprenant le code :
for (int i=0; i< 12 ; i++){
int resID = getResources().getIdentifier(
"Button_"+i,"id","fr.iutbm.couchot.android_awale");
plateau[i] = (Button) this.findViewById(resID);
plateau[i].setOnClickListener(this);
Le code de la classe est ici