Boite de dialogue Android
Sur 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.