May 19, 2024

Wiki

Python

Aide

edit SideBar

Search

UI

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

Page Actions

Recent Changes

Group & Page

Back Links