Mit der Android AlertDialog Klasse kann der Benutzer sehr einfach um eine Bestätigung, im Stil von „Möchten Sie die Datei löschen?“ „Ja“|“Nein“, gefragt werden.

Android AlertDialog Beispiel AppDas folgende Beispiel zeigt, wie Rückfragen an den Benutzer mit der Android AlertDialog Klasse implementiert werden. Das Ergebnis sehen Sie im Screenshot rechts.

Dialoge mit Layouts und Steuerelementen werden im Kapitel der Android Dialog Klasse behandelt.

Android AlertDialog Beispiel App:

  1. Beginnen Sie bitte mit dem Erzeugen eines neuen Android Application Project. Vergeben Sie als Namen AlertDialogBeispiel und wählen Sie ein Activity vom Typ Empty Activity.
  2. Fügen Sie der Benutzerschnittstelle einen neuen Button hinzu.
  3. Passen Sie den Inhalt der Datei MainActivity.java wie im folgendem Beispielcode an:
     
    package com.individuapp.alertdialogbeispiel;
    
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		Button button = (Button) findViewById(R.id.button1);
    		button.setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View v) {
    				AlertDialog.Builder dlgBuilder = new AlertDialog.Builder(MainActivity.this);
    				dlgBuilder.setMessage("Sind Sie sicher?");
    				dlgBuilder.setCancelable(false);
    				dlgBuilder.setPositiveButton("Ja", new DialogInterface.OnClickListener() {
    					
    					@Override
    					public void onClick(DialogInterface dialog, int which) {
    						Toast.makeText(MainActivity.this, "Ja gedrückt", Toast.LENGTH_SHORT).show();
    					}
    				});
    				
    				dlgBuilder.setNegativeButton("Nein", new DialogInterface.OnClickListener() {
    					
    					@Override
    					public void onClick(DialogInterface dialog, int which) {
    						Toast.makeText(MainActivity.this, "Nein gedrückt", Toast.LENGTH_SHORT).show();
    					}
    				});
    				
    				AlertDialog alert = dlgBuilder.create();
    				alert.show();
    			}
    		});
    	}
    }
    

    Hier passiert folgendes:

    • Zuerst wird der Schaltfläche in Zeile 19 und 20 ein Klick-Listener hinzugefügt. Dadurch wird die App von Klicks auf die Schaltfläche benachrichtigt, indem die Methode onClick() aus Zeile 23 aufgerufen wird.
    • Innerhalb der Methode onClick() wird zuerst ein neues Objekt vom Typ AlertDialog.Builder instanziiert (Zeile 24).
    • Der Aufruf der Methode setMessage() in Zeile 25 setzt die dem Benutzer zu stellende Frage.
    • Die Methode setCancelable() verhindert, dass der Dialog durch Drücken der Zurück-Taste geschlossen werden kann. Es muss somit immer eine Eingabe getätigt werden.
    • Die beiden Methoden setPositiveButton() und setNegativeButton() setzen die Beschriftung der Schaltflächen sowie einen Klick-Listener, der beim Betätigen der Taste aufgerufen wird. Wenn eine der Tasten gedrückt wird, wird mit der Android Klasse Toast eine kurze Nachricht angezeigt.
      Falls notwendig, würde auch noch die Methode setNeutralButton() zur Konfiguration einer dritten Schaltfläche zur Verfügung stehen.
    • In Zeile 43 wird der AlertDialog erzeugt bevor er in Zeile 44 angezeigt wird.