Publié le 11/02/2015
Auteur Axel
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Afficher une boite de dialogue

La plateforme Android propose également des API pour afficher des boites de dialogue à l'utilisateur. Dans ce tuto, nous allons voir comment afficher une courte note d'information, une boite de dialogue de confirmation et une boite de dialogue pour demander à l'utilisateur de faire un choix.

Boite de dialogue Android

android-messageSur le système d'exploitation Android, on peut différencier 3 types de message que l'on peut afficher dans les interfaces graphiques:

Toast
: ce sont des message d'information ou d'avertissement ayant un caractère transitoire car il ne nécessite aucune action de l'utilisateur pour qu'ils disparaissent,

Message de confirmation: ce sont des boites de dialogue de type modale pour afficher des informations à l'utilisateur. Dans ce cas, il faut cliquer sur le boutton OK pour confirmer avoir pris connaissance du message,

Message de choix: ce sont des boites de dialogue dans lesquels l'utilisateur décide de prendre tel ou tel choix, en général en cliquant sur un bouton oui ou non.


Exemple de boite de dialogue avec JAVA

Pour construire une application native en JAVA, nous avons avons besoin d'un Layout et de class JAVA. Copier/coller les exemples ci-dessous dans votre editeur Android préféré pour compiler l'apk.

Linear Layout basique

Le layout aussi appelé conteneur définit l'interface graphique, à savoir l'ensemble des composants et la manière de les afficher. Pour l'exemple, le layout contient 1 zone de texte (TextView) et 2 bouttons (Button).
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	android:id="@+id/widget32"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical"
	xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
	android:id="@+id/widget35"
	android:layout_width="fill_parent"
	android:layout_height="58dp"
	android:text="Exemple de 3 boites de dialogue"
        android:background="#FAFAFA" />
<Button
	android:id="@+id/widget32"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:text="Dialogue OK" 
        android:onClick="MyButtonOnClick"/>
<Button
	android:id="@+id/widget30"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:text="Dialogue Oui/Non"
        android:onClick="ButtonYesNoClick"/>
</LinearLayout>

Class JAVA pour les messages

La class correspond à la copie d'écran de mon Sony Xperia. Le but de l'application est d'afficher une interface graphique et de répondre aux actions de l'utilisateur. Lorsque l'utilisateur clique sur l'un des boutons, la boite de dialogue apparait puis l'application affiche un toast avec l’élément sélectionné.
import My.Package.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
 
/**
 * Afficher une boite de dialogue avec JAVA sous Android
 * @see http://www.fobec.com/java/1159/afficher-une-boite-dialogue.html
 * @author Axel
 */
 
public class MainActivity extends Activity {
 
    /**
     * Constructeur appelé au lancement de l'application
     * @param savedInstanceState 
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        /** Fixer la couleur de fond à blanc */
        getWindow().getDecorView().setBackgroundColor(Color.WHITE);
    }
 
    /**
     * Evenement du bouton Dialogue OK
     * @param v 
     */
    public void MyButtonOnClick(View v) {
        AlertDialog.Builder dlgAlert = new AlertDialog.Builder(this);
        dlgAlert.setMessage("Ceci est un message d'information");
        dlgAlert.setTitle("Titre de la fenetre");
        dlgAlert.setPositiveButton("OK", null);
        dlgAlert.setCancelable(true);
        dlgAlert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "Click sur le boutton OK", Toast.LENGTH_SHORT).show();
            }
        });
        dlgAlert.create().show();
    }
 
    /**
     * Evenement du bouton Dialogue Oui/Non
     * @param v 
     */
    public void ButtonYesNoClick(View v) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Demande de confirmation");
        builder.setMessage("Voulez vous continer ?");
        builder.setIcon(android.R.drawable.ic_dialog_alert);
        builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "Click sur le boutton Oui", Toast.LENGTH_SHORT).show();
            }
        });
        builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "Click sur le boutton Non", Toast.LENGTH_SHORT).show();
            }
        });
        builder.show();
    }
}

C'est mon premier article sur le développement d'application native avec JAVA. Les boites de dialogue sont souvent utilisées pour informer ou pour demander un choix. Je vais essayé de maintenir le rythme pour publier de nombreux articles sur le développement d'application avec JAVA et Android.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - android
Mise a jour
11/02/2015
Visualisation
vu 4357 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par MeepMeep dans tuto

Attention, un petit correctif a apporter :
headerContent-type: $header_contenttype charset: UTF-8
Remplacer charset: UTF-8 par charsetUTF-8
La difference est subtile mais susceptible d'etre m...

Publié par mohamed dans php5

code comment publier tous les ficher en php5 et html5

Publié par deefaze dans CMS

Label1.Caption := format(\'Red: $%.2x, Green : $%.2x, Blue : $%.2x\',[R,G,B]);

:)

Publié par liomka dans java

Merci! C'étais l'exemple parfait donc j'avais besoin pour apprendre la programmation Client/Serveur en Java ;)

Publié par hilflo dans tuto

Tres bon article qui montre bien les subtilites des mutualises de 1and1.
Je l'ai utilise pour un de mes sites en y ajoutant de l'url rewriting pour eviter d'avoir des parametres dans l'url avec cet...