Dialogue de base
Cet exemple est celui d'un dialogue de base (classe AlertDialog), créé à l'aide d'un objet DialogBuilder. Le fichier de mise en page ne contient qu'un bouton permettant d'afficher ce dialogue.
MainActivity.java
package net.codeandroid.exemplededialogue; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { final Context mContexte = this; private Button mBouton; // point d'entrée de l'application public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // récupération du bouton mBouton = (Button)findViewById(R.id.btnDialogue); // assignation d'un gestionnaire mBouton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // création du "builder" AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(mContexte); // titre alertDialogBuilder.setTitle("Ceci est un dialogue alimentaire"); // messages et assignation des gestionnaires de boutons alertDialogBuilder .setMessage("Aimez-vous le brocoli?") .setCancelable(false) .setPositiveButton("Oui", new GestionnaireOui()) .setNegativeButton("Non", new GestionnaireNon()); // création du dialogue AlertDialog alertDialog = alertDialogBuilder.create(); // affichage alertDialog.show(); } }); } // gestionnaire du "oui" class GestionnaireOui implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface dialog, int id) { String message = "Vous avez raison, c'est bon pour la santé!"; Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show(); // ferme la boîte de dialogue dialog.cancel(); // termine proprement l'activité //MainActivity.this.finish(); } } // gestionnaire du "non" class GestionnaireNon implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface dialog, int id) { String message = "Moi non plus!"; Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show(); dialog.cancel(); } } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center"> <Button android:id="@+id/btnDialogue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Afficher le dialogue" /> </LinearLayout>