Vous êtes sur la page 1sur 5

Référencer les composants graphiques d'une

activité

YAO ARISTIDE

Paternité - Pas d'Utilisation Commerciale : http://creativecommons.org/licenses/by-


nc/1.0/fr/
ID : YJYA-AND-22-23
Table des matières
I. Déclarer les variables (attributs) d'une activité ................................................................ 3
1. Principe de référencement de composant ............................................................................... 3
2. Déclarer des variables (attributs) ............................................................................................ 3
3. Convention de nommage pour un attribut .............................................................................. 4
II. Relier un composant graphique avec un attribut ............................................................. 4
1. Identifier un composant ......................................................................................................... 4
2. Valeur du paramètre android:id .............................................................................................. 4
3. La méthode findViewById()..................................................................................................... 5

Paternité - Pas d'Utilisation Commerciale : http://creativecommons.org/licenses/by-


nc/1.0/fr/
ID : YJYA-AND-22-23
I. Déclarer les variables (attributs) d'une activité

1. Principe de référencement de composant


L'interface suivante comporte quatre composants :
 Un champ de saisie "To"
 Un champ de saisie "Subject"
 Un champ de saisie "Message"
 Un bouton de validation "Send"
Pour pouvoir recueillir les actions de l'utilisateur sur ces composants, il est nécessaire de les
référencer dans le code java de l'activité corresponde (MainActivity.java).
Pour référencer un composant dans le code, il faut lui associer une variable (un attribut).

2. Déclarer des variables (attributs)


Pour déclarer une variable (attribut) en java, on utilise la syntaxe suivante :
Modificateur_accès [espace] Composant [espace] Nom_composant ;

Paternité - Pas d'Utilisation Commerciale : http://creativecommons.org/licenses/by-


nc/1.0/fr/
ID : YJYA-AND-22-23
Ex e m p le : Déclaration des attributs de notre interface activité

1 private EditText nom_composant;


2 private EditText nom_composant1;
3 private EditText nom_composant2;
4 private Button nom_composant3;

3. Convention de nommage pour un attribut


Pour écrire le nom d'un attribut, il est recommandé de préfixer ce nom par la lettre "m"
(abréviation de member en anglais) et de le suffixer par sa nature (text pour un champ texte,
input pour une zone de saisie, btn pour un bouton, etc.)

Ex e m p le : Pour revenir sur les déclarations d'attributs de notre interface

1 private EditText mToInput;


2 private EditText mSubjectInput;
3 private EditText mMessageInput;
4 private Button mSendButton;

II. Relier un composant graphique avec un attribut

Jusqu'à présent nous avons appris à créer des attributs afin de faire un lien entre ces attributs
et les composants graphiques d'une activité. Maintenant nous verrons comment les connecter
pour prendre en compte les actions de l'utilisateur. Ces actions seront traitées dans la méthode
onCreate de l'activité MainActivity.

1. Identifier un composant
ID
Tout objet de type « View » doit être associé à un « ID », qui permet de l'identifier de
manière unique dans l'arbre XML auquel il appartient. Pour ce faire, XML offre l'attribut
android:id qui est commun à tous les objets de type View.

2. Valeur du paramètre android:id


Convention de nommage
La valeur de l'attribut android:id doit être de la forme suivante :
@+id/nom_identifiant
Puisque le nom de l'identifiant doit être unique au niveau du projet global, il est
recommandé de nommer l'identifiant selon la règle suivante :
1. Préfixer par le nom du fichier layout sans l'extension "xml"
2. Donner un nom au composant
Paternité - Pas d'Utilisation Commerciale : http://creativecommons.org/licenses/by-
nc/1.0/fr/
ID : YJYA-AND-22-23
3. Suffixer par le type du composant

Ex e m p le : Dans notre fichier Layout, on aura

1 <EditText
2 android:id="@+id/activity_main_to_input"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content"
5 android:hint="To" />
6
7 <EditText
8 android:id="@+id/activity_main_subject_input"
9 android:layout_width="match_parent"
10 android:layout_height="wrap_content"
11 android:hint="Subject" />
12
13 <EditText
14 android:id="@+id/activity_main_message_input"
15 android:layout_width="match_parent"
16 android:layout_height="wrap_content"
17 android:hint="Message"
18 android:gravity="top"
19 android:layout_weight="1"/>
20
21 <Button
22 android:id="@+id/activity_main_send_btn"
23 android:layout_width="wrap_content"
24 android:layout_height="wrap_content"
25 android:layout_gravity="right"
26 android:text="Send"/>

3. La méthode findViewById()
Après avoir ajouté un identifiant à un composant, et déclarer un attribut de même type que
ce composant, il est nécessaire de les relier afin de manipuler l'objet de type View. La méthode
Java findViewById() permet de les relier. Elle prend en argument l'identifiant de l'objet de
type View et renvoie une vue (type View). La syntaxe de l'argument est de la forme :
R.id.identifiant_composant

Ex e m p le : Liaison entre composants et attributs

1 mToInput = (EditText) findViewById(R.id.activity_main_to_input);


2 mSubjectInput = (EditText) findViewById(R.id.activity_main_subject_input);
3 mMessageInput = (EditText) findViewById(R.id.activity_main_message_input);
4 mSendButton = (Button) findViewById(R.id.activity_main_send_btn);

Remarque : Notez le cast réalisé avant d'affecter le resultat de findViewById à la variable.


Le code ci-dessus est réalisé dans la méthode onCreate()

M é t hod e : mToInput = (EditText) findViewById(R.id.activity_main_to_input);


mToInput représente l'attribut que nous avons défini dans l'activité. A cet attribut est affecté
une vue qui est le résultat de la méthode findViewById(). Par la suite (EditText) est utilisé
pour réaliser un cast ou une conversion de type ; Puisque l'attribut mToInput est de type
EditText, il ne peut pas recevoir directement un type View.

Paternité - Pas d'Utilisation Commerciale : http://creativecommons.org/licenses/by-


nc/1.0/fr/
ID : YJYA-AND-22-23

Vous aimerez peut-être aussi