Im folgenden Beispiel erzeugen wir einen Android Dialog mit eigenem Layout und Steuerelementen.

Wird lediglich eine einfache Abfrage im Stil von „Sind Sie sicher?“ „Ja|Nein“ benötigt, ist ein Android AlertDialog die einfachere Lösung.

Android Dialog Beispiel App

Android Dialog Beispiel:

Der Screenshot rechts zeigt das Endergebnis dieser Übung

  1. Wir beginnen erneut mit der Erstellung eines Android Application Projekts in Eclipse. Bitte nennen Sie das Projekt EigenerDialog und wählen Sie ein Empty Activity.
  2. Fügen Sie eine neue Schaltfläche zur Datei res/layout/activity_main.xml hinzu.
  3. Im nächsten Schritt erzeugen wir das vom Dialog angezeigte Layout. Dazu wählen Sie bitte im Menü File -> New -> Other unter Android den Eintrag Android XML Layout File. Geben Sie bitte im daraufhin angezeigten Fenster den Namen dialoglayout im Feld rechts neben der Bezeichnung File an und wählen Sie LinearLayout unter Root Element. Den nächsten Schritt können Sie durch Klick auf die Schaltfläche Finish überspringen.
  4. Öffnen Sie die Datei /res/layout/dialoglayout.xml und fügen Sie je ein Element vom Typ ImageView, Button und TextView ein. Sie können die Elemente beliebig positionieren. Weisen Sie der Schaltfläche bitte die id buttonDlg zu. Hier ist ein Beispiel der Datei /res/layout/dialoglayout.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:padding="10dp" >
     
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal"
            android:paddingBottom="20dp" >
     
            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher" />
     
            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Eine kurze Nachricht..." />
        </LinearLayout>
     
        <Button
            android:id="@+id/buttonDlg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Dialog schließen" />
    </LinearLayout>
    
  5. Im folgendem Schritt wird der Dialog angezeigt, nachdem die Schaltfläche in activity_main.xml gedrückt wurde. Ändern Sie dazu die Datei MainActivity.java wie folgt ab:
    
    package com.individuapp.eigenerdialog;
    
    import android.app.Activity;
    import android.app.Dialog;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    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) {
    				final Dialog dlg = new Dialog(MainActivity.this);
    				dlg.setContentView(R.layout.dialoglayout);
    				dlg.setTitle("Überschrift des Dialogs");
    
    				Button dlgButton = (Button) dlg.findViewById(R.id.buttonDlg);
    				dlgButton.setOnClickListener(new OnClickListener() {
    					
    					@Override
    					public void onClick(View v) {
    						dlg.hide();
    					}
    				});
    				dlg.show();
    			}
    		});
    	}
    }
    

    Hier passiert folgendes:

    • Wenn der Button aus activity_main.xml geklickt wird, wird in onClick() eine Instanz der Klasse Dialog angelegt (Zeile 22). Anschließend wird das darzustellende Layout (Zeile 23) sowie die Überschrift (Zeile 24) des Dialogs gesetzt.
    • In den Zeilen 26 und 27 wird der Schaltfläche im Dialog ein Klick-Listener hinzugefügt, der nach einem Klick den Dialog schließt (Zeile 32).
    • Nachdem alles vorbereitet ist, wird der Dialog durch den Aufruf der Methode show() in Zeile 34 angezeigt.