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 4392 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par hungerGames dans php5

Salut!
je suis un debutant en php,et lorsque j'ai execute le code
sur la creation de la base 'member',on m'a affiche cet message:
"Undefined class constant 'ATT_ERRMOD...

Publié par Fobec dans tuto

Merci pour la remarque Toluar,
Les user-agent sont effectivement un bon indicateur pour les utilisateurs. Les crawlers et robots en tout genre ne prennent pas toujours la peine de renseigner cette...

Publié par fobec dans logiciel

MAJ: mise en cache du FAI et optimisation du script de Geolocalisation.

Publié par Pierrot dans CMS

Je présume que c'est plutot application.terminate;, le clavier à fourcher, ça m'arrive souvent.
@+

Publié par beeker dans tuto

Le script fonctionne bien en hebergement mutua1isee