Toast et boîtes de dialogue


Travaillons avec les Toast et les boîtes de dialogue
Avant de commence cet atelier, nous avons besoin à définir le terme Toast.


Selon l’encyclopédie http://www.linternaute.com, Toast une tranche de pain grillée. 



 

   On l’utilise dans les applications Android pour communiquer une information intuitive, voir l’exemple ci-dessous :



 Pour la démonstration de cet atelier, nous avons besoin à créer une seule activité avec plusieurs boutons, chaque bouton associé à un Toast ou une boîte de dialogue.
Bouton 1 : affiche un toast pour une duré très légère ;
Bouton 2 : affiche un toast pour une duré moins légère ;
Bouton 3 : affiche une boîte de dialogue avec un seul bouton ;
Bouton 4 : affiche une boîte de dialogue avec deux boutons ;
Bouton 5 : affiche une boîte de dialogue avec trois seul boutons et une zone de saisie.

Au début, nous commençons par la mise en forme du formulaire main.xml sous format graphique comme suit :



Le code équivalent de cette présentation est le suivant :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <Button
        android:id="@+id/b1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Afficher Toast leger" />


    <Button
        android:id="@+id/b2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Afficher Toast dure" />


    <Button
        android:id="@+id/b3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Afficher boite de dialogue 1" />


    <Button
        android:id="@+id/b4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Afficher boite de dialogue 2" android:isScrollContainer="true"/>


    <Button
        android:id="@+id/b5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Afficher boite de dialogue 3" />

</LinearLayout>


Après le fichier de présentation, nous proposons le fichier java associé à notre présentation :

package com.formation.toast_dial;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Main extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    Button b1,b2,b3,b4,b5;
      @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // La référence  des boutons
        b1=(Button)findViewById(R.id.b1);
        b2=(Button)findViewById(R.id.b2);
        b3=(Button)findViewById(R.id.b3);
        b4=(Button)findViewById(R.id.b4);
        b5=(Button)findViewById(R.id.b5);

        // La gestion des événements des boutons
        b1.setOnClickListener(this);
        b2.setOnClickListener(this);
        b3.setOnClickListener(this);
        b4.setOnClickListener(this);
        b5.setOnClickListener(this);
    }
       // les actions après la clique des boutons
      public void onClick(View arg0) {
            switch(arg0.getId()){

              case R.id.b1:
                   Toast.makeText(this, "Toast courte duré", Toast.LENGTH_SHORT).show();
                   break;

              case R.id.b2:
              Toast.makeText(this, "Toast longue duré", Toast.LENGTH_SHORT).show();
                   break;
              case R.id.b3:
                    AlertDialog.Builder boite;
                    boite = new AlertDialog.Builder(this);
                    boite.setTitle("boite de dialogue 1");
                    boite.setIcon(R.drawable.ic_launcher);
                        boite.setMessage("Message de la 1ere boite");
                    boite.setPositiveButton("Oui", new DialogInterface.OnClickListener() {
                       
                        public void onClick(DialogInterface dialog, int which) {
                       
                        }
                        }
                    );
                    boite.show();
                         break;

              case R.id.b4:
                    AlertDialog.Builder boite2;
                    boite2 = new AlertDialog.Builder(this);
                    boite2.setTitle("boite de dialogue 2");
                    boite2.setIcon(R.drawable.ic_launcher);
                        boite2.setMessage("Message de la 2eme boite");
                    boite2.setPositiveButton("Oui", new DialogInterface.OnClickListener() {
                       
                        public void onClick(DialogInterface dialog, int which) {
                       
                        }
                        }
                    );
                boite2.setNeutralButton("Ignorer", new DialogInterface.OnClickListener() {
                       
                        public void onClick(DialogInterface dialog, int which) {
                       
                        }
                        }
                );
                 boite2.setNegativeButton("Non", new DialogInterface.OnClickListener() {
                       
                        public void onClick(DialogInterface dialog, int which) {
                       
                        }
                        }
                 );
                    boite2.show();
                         break;
              case R.id.b5:
                    AlertDialog.Builder boite3;
                    final EditText input = new EditText(this);
                    boite3 = new AlertDialog.Builder(this);
                    boite3.setView(input);
                  boite3.setTitle("boite de dialogue 3");
                    boite3.setIcon(R.drawable.ic_launcher);
                        boite3.setMessage("Message de la 3eme boite");
                    boite3.setPositiveButton("Oui", new DialogInterface.OnClickListener() {
                       
                        public void onClick(DialogInterface dialog, int which) {
                       
                        }
                        }
                    );
              boite3.setNeutralButton("Ignorer", new DialogInterface.OnClickListener() {
                       
                        public void onClick(DialogInterface dialog, int which) {
                       
                        }});
               boite3.setNegativeButton("Non", new DialogInterface.OnClickListener() {
                       
                        public void onClick(DialogInterface dialog, int which) {
                       
                            //Récupération de la valeur renseignée dans la boite du dialogue
                             
                              String value = input.getText().toString();
                               
                             
                            }
                        }
               );
             
                    boite3.show();
                         break;
            }
      }
}

Voila, notre application est complète, il nous reste à voir les fruits de notre travail par son exécution sur l’émulateur.


 
Vous pouvez télécharger le code source de cet atelier en cliquant ici.

4 commentaires:

  1. Pour le deuxième Toast, tu as mis LENGTH_SHORT alors que c'est le long ;)

    RépondreSupprimer
  2. bjr
    comment faire sans le case une seule boite de dialogue?

    RépondreSupprimer
  3. Pour une seule boite http://vogella.developpez.com/tutoriels/android/utiliser-dialogues/

    RépondreSupprimer
  4. Pour une seule boite http://vogella.developpez.com/tutoriels/android/utiliser-dialogues/

    RépondreSupprimer