-
Détails
-
Écrit par Chekam Wabo
-
Catégorie : Gestion des événements
-
Affichages : 4
Code de gestion des événements
L'utilisation de classes anonymes pour les codes de gestion des événements devrait résoudre un grand nombre de problèmes de programmation, mais les classes anonymes ne sont pas le seul moyen de gérer les événements. Nous allons examiner deux autres façons de procéder.Pour cet exercice, nous allons créer un nouveau projet. Utilisez les informations du tableau 5-4 pour créer le projet.
Table 5-4. Project Information
Application name
|
EventHandling1
|
Company domain
|
Leave the default
|
Project location
|
Leave the default
|
Form factor
|
Phone and tablet only
|
Minimum SDK
|
API 23 Marshmallow
|
Type of activity
|
Empty
|
Activity name
|
MainActivity
|
Layout name
|
activity_main
|
Ajoutez trois vues de bouton à la mise en page. Dans cet exemple, ils sont alignés verticalement et sont obligés de rester au centre de l'écran. Le moyen le plus simple de réaliser cette présentation est de positionner les boutons à la main, en se rapprochant de l'emplacement souhaité pour l'exécution. Ensuite, sélectionnez-les tous en cliquant sur les trois boutons et en les faisant glisser, puis utilisez les outils de l'inspecteur de contraintes pour affiner l'alignement et les contraintes.Vous pouvez utiliser le bouton «Pack» (comme illustré à la figure 5-9) pour répartir les vues verticalement. Après cela, utilisez les contraintes «Inférer» pour aligner automatiquement les vues les unes sur les autres et sur le conteneur.
Figure 5-9. Pack vertically
Figure 5-10 montre à quoi pourrait ressembler la mise en page.
Figure 5-10. activity_main in design view for EventHandling1
Les identifiants des vues de bouton ont été modifiés en boutons1, bouton2 et bouton3 en conséquence, afin que nous puissions nous y référer plus tard dans le code. Vous pouvez utiliser d'autres noms, bien sûr. Les identifiants de vue sont simplement des identifiants que vous, le programmeur, déciderez en définitive.Mais pour ce projet, ils portent le même nom. Le Listing 5-6 montre le code XML de notre mise en page.
Listing 5-12. activity_main.xml in Text View
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.thelogbox.eventhandling1.MainActivity">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="48dp"
android:text="1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="2"
app:layout_constraintStart_toStartOf="@+id/button1"
app:layout_constraintTop_toBottomOf="@+id/button1"/>
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="3"
app:layout_constraintStart_toStartOf="@+id/button2"
app:layout_constraintTop_toBottomOf="@+id/button2"/> </android.support.constraint.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.thelogbox.eventhandling1.MainActivity">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="48dp"
android:text="1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="2"
app:layout_constraintStart_toStartOf="@+id/button1"
app:layout_constraintTop_toBottomOf="@+id/button1"/>
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="3"
app:layout_constraintStart_toStartOf="@+id/button2"
app:layout_constraintTop_toBottomOf="@+id/button2"/> </android.support.constraint.ConstraintLayout>