Publié le 11/02/2015
Auteur Axel
Réseaux sociaux
0 partages
0 tweets
3 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 2337 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par etoiliste010 dans java

BONSOIR le code compile mais
Grave: null
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. gd4sm1845967wib.6

at com.sun.mail.smtp.SMTPTransport.i...

Publié par Axel dans java

la position sur mouseDragged a ete corrigee dans l'article.
Merci Alpcom !

Publié par pacman dans java

thanks for sharing, that s great!

Publié par Yannick dans tuto

Sur un de mes sites j'ai vraiment du mal a gerer le gzip sur 1and1, Je vais tout de suite tester tout ca et je vous tiens informe :)

Publié par Fobec dans CMS

Le code source de l'exemple se trouve dans la pièce jointe (Fiche de l'article -> Boutton Telecharger)