Vous êtes sur la page 1sur 19

Programmation

Mobile
Interface graphique dans une application Android avec XML :
Les widgets
• Un widget est un élément de base qui permet d'afficher du
contenu à l'utilisateur ou lui permet d'interagir avec l'application.
Chaque widget possède un nombre important d'attributs XML et
de méthodes Java.
TextView afficher une chaîne de caractères que l'utilisateur ne peut modifier.
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="textView"
android:textSize=« 20dp"
android:textColor="#112233" />
Identifiant sur les widgets
EditText Ce composant est utilisé pour permettre à l'utilisateur
d'écrire des textes. Il s'agit en fait d'un TextView éditable.
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="EditText"
android:inputType="textMultiLine"
android:lines="5" />
Identifiant sur les widgets
EditText
Au lieu d'utiliser android:text, on utilise android:hint.
Le problème avec android:text est qu'il remplit l'EditText avec le texte
demandé, alors qu'android:hint affiche juste un texte d'indication, qui
n'est pas pris en compte par l'EditText en tant que valeur.
Identifiant sur les widgets
Button
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=« Button" />
Identifiant sur les widgets
CheckBox Une case qui peut être dans deux états : cochée ou pas.

<CheckBox
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="checkBox"
android:checked="true" />
Identifiant sur les widgets
RadioButton et RadioGroup l'utilisateur ne peut cocher qu'une seule
case. <RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RadioGroup>
• Identifiant sur les widgets :
• permet à un programme JAVA de retrouver l'instance de ce
widget correspondant à cet identifiant durant l'exécution du
code.
• tous éléments qui seront utiles, exploités dans votre source
JAVA doivent avoir un identifiant comme attribut.
• On positionne un id sur des objets qui peuvent interagir avec
l'utilisateur (par exemple un bouton, B.R, ...).
• Cela sera plus rare pour des objets statiques comme un label
(textview).


• Déclaration d'un identifiant :
• La déclaration se faisant dans le fichier xml.
• Il y a une norme pour déclarer un id. Le principe est le suivant:
@+id/nom_unique_identifiant
• où nom_unique_identifiant représente le nom de votre widget et qui
doit être unique !

• Par exemple: android:id="@+id/editText1"


• Lire les attributs d'un widget :
• On utilise la fonction :

findViewById(R.id.nom_unique_identifiant).
• Cette fonction retourne l'instance de type View ou null si non trouvé.
Il faudra donc éventuellement la caster pour pouvoir ensuite utiliser
toutes les méthodes de votre widget.
• Par exemple:
Button monBouton=(Button) findViewById(R.id.Button1);
• Les Toasts (messages d'alerte) :
• A considérer comme un message d'information, d'avertissement.
• Ce message est dit transitoire.
• Le toast de base a besoin de 3 paramètres: le contexte de
l’application, le texte à afficher et enfin la durée d'affichage
(La durée pourra prendre deux valeurs:
Toast.LENGTH_SHORT ou Toast.LENGTH_LONG):

Toast toast = Toast.makeText(ApplicationContext(), "Hello toast!",


Toast.LENGTH_SHORT);
toast.show();
• Les Toasts (messages d'alerte) :
• Positionner un toast
Comme pour les widgets, un toast a un point d'attraction (qui est vers le
bas de l'écran et centré horizontalement par défaut).
Vous pouvez cependant le personnaliser en utilisant la méthode
setGravity() :

setGravity(int gravity, int offset x, int offset y)

- Par exemple: toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);


• Gérer les évènements sur les widgets (Les listener ):
• Sous Android, toutes les actions de l'utilisateur sont perçues
comme un événement
• Les événements sont interceptés par les éléments d'une interface
en utilisant des écouteurs (listeners).
• Association entre un événement et une méthode à appeler en
cas d'apparition de cet événement.
Exemple : pour un événement OnClick, la méthode associée
est OnClick()
• Gérer les évènements sur les widgets (Les listener ):

• Exemples ( manipulations pratiques)


• Les listener sous Android :
• permet à un programme JAVA de retrouver l'instance de ce
widget correspondant à cet identifiant durant l'exécution du
code.
• On positionne un id sur des objets qui peuvent interagir avec
l'utilisateur (par exemple un bouton, B.R, ...).
• Un listener va se mettre à l'écoute des boutons et déclencher
une méthode lorsque l'un d'eux est pressé.
• Les listener sous Android :
• Comment faire ?
public class Main extends Activity implements View.OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button b = (Button) findViewById(R.id.boutton);


b.setOnClickListener(this);
}
@Override
public void onClick(View v) {
/* Réagir au clic */
}
}
TP_TD_3 : Interfaces et interaction avec
l’utilisateur
Manipulation n°1 :

Réalisation d’une interface d’authentifcation


statique
Arrêtons d’ être des simples
consommateurs de technologie

Vous aimerez peut-être aussi