Kompaktes Tutorial: Android Alert Dialogs mit Kotlin erstellen

Entdecke in diesem praxisnahen Tutorial, wie du mithilfe von Kotlin Alert Dialogs in deiner Android-App erstellst. Von der Grundlagen bis zur Anpassung von Buttons und Styles – lerne alles Schritt für Schritt. Ein unverzichtbarer Leitfaden für Entwickler, um interaktive Benutzererfahrungen zu schaffen.

Was sind Alert Dialogs?

Ein Alert Dialog ist ein Fenster, das auf dem Bildschirm erscheint. Sie zeigen in der Regel Informationen an und fordern eine Benutzeraktion an. Ein Alert Dialog besteht aus drei Kernkomponenten:

  • Titeltext
  • Nachrichtentext
  • Buttons – Es gibt drei Arten von Buttons: Positive, Negative und Neutral

Um einen AlertDialog zu erstellen, verwenden wir die innere Klasse AlertDialog.Builder.

val alertDialogBuilder = AlertDialog.Builder(this)

Wir übergeben den Kontext im Konstruktor. Optional können wir einen weiteren Parameter übergeben, den Alert-Dialog-Stil.

Methoden von Alert Dialogs

Einige der Methoden, die auf einem AlertDialog verwendet werden können:

  • setTitle
  • setMessage
  • setIcon
  • setCustomTitle – Hier können Sie eine benutzerdefinierte Ansicht übergeben, die anstelle des Titels im Alert Dialog platziert wird.
  • setPositiveButton – Hier übergeben wir den String-Namen sowie die Methode für den Button-Klick-Rückruf.
  • setView – wird verwendet, um eine benutzerdefinierte Ansicht im Alert Dialog hinzuzufügen.
  • setList – wird verwendet, um ein Array von Strings festzulegen, das in Form einer Liste angezeigt wird.
  • setMultiChoiceList – erneut können wir ein Array festlegen, aber dieses Mal können wir dank CheckBox mehrere Elemente auswählen.
  • setPositiveButtonIcon – setzt ein Symbol neben dem Button.
  • show() – wird verwendet, um den AlertDialog anzuzeigen.
  • setDismissListener – Hier können Sie die Logik festlegen, die ausgelöst wird, wenn der AlertDialog verworfen wird.
  • setShowListener – legt die Logik fest, die ausgelöst wird, wenn der AlertDialog verworfen wird.
  • setCancelable – erfordert einen booleschen Wert. Standardmäßig sind alle Alert Dialogs beim Klicken auf den Button oder das Berühren außerhalb abbrechbar. Wenn diese Methode auf false gesetzt ist, müssen Sie den Dialog explizit mit der Methode dialog.cancel() abbrechen.

Kotlin-Code für Alert Dialogs

Um AlertDialog in Ihrem Android Studio-Projekt zu verwenden, importieren Sie die folgende Klasse.

import android.support.v7.app.AlertDialog;

Der folgende Kotlin-Code wird verwendet, um einen einfachen Alert Dialog zu erstellen.

val builder = AlertDialog.Builder(this)
builder.setTitle("Androidly Alert")
builder.setMessage("Wir haben eine Nachricht")

builder.setPositiveButton(android.R.string.yes) { dialog, which ->
    Toast.makeText(applicationContext,
            android.R.string.yes, Toast.LENGTH_SHORT).show()
}

builder.setNegativeButton(android.R.string.no) { dialog, which ->
    Toast.makeText(applicationContext,
            android.R.string.no, Toast.LENGTH_SHORT).show()
}

builder.setNeutralButton("Vielleicht") { dialog, which ->
    Toast.makeText(applicationContext,
            "Vielleicht", Toast.LENGTH_SHORT).show()
}

builder.show()

Der builder.show() zeigt den Alert Dialog auf dem Bildschirm an. Innerhalb der setPositiveButton-Funktion übergeben wir den Buttontext zusammen mit einer Kotlin-Funktion, die ausgelöst wird, wenn dieser Button geklickt wird. Die Funktion ist Teil des DialogInterface.OnClickListener()-Interfaces. Der Funktionstyp ist (DialogInterface, Int) -> Unit. DialogInterface ist eine Instanz des Dialogs und Int ist die ID des geklickten Buttons. Im obigen Code haben wir diese Funktion als Higher-Order-Kotlin-Funktion dargestellt. Das dialog und which repräsentieren die beiden Argumente. Wir können die Funktion verbessern, indem wir _ übergeben, wenn die Argumente nicht verwendet werden. Die Funktionen würden wie folgt aussehen:

builder.setPositiveButton(android.R.string.yes) { _,_ ->
            Toast.makeText(applicationContext,
                    android.R.string.yes, Toast.LENGTH_SHORT).show()
        }

Alternativ können wir den Dialog auch über die Instanz der AlertDialog-Klasse anzeigen. Ersetzen Sie builder.show() durch:

val alertDialog = builder.create()
alertDialog.show()

Statt die Funktionen für den Klick auf die Schaltflächen separat zu definieren, können wir auch höhere Funktionen separat definieren.

val positiveButtonClick = { dialog: DialogInterface, which: Int ->
    Toast.makeText(applicationContext,
            android.R.string.no, Toast.LENGTH_SHORT).show()
}

Setzen Sie diese val-Eigenschaft jetzt in die setPositiveButton-Kotlin-Funktion wie folgt ein:

builder.setPositiveButton("OK", DialogInterface.OnClickListener(function = positiveButtonClick))
//oder
builder.setPositiveButton(android.R.string.yes, positiveButtonClick)

Letzteres macht den Code viel prägnanter. Im Folgenden finden Sie einen Screenshot aus unserer Activity-Klasse mit der oben angewendeten Funktion für jede der Schaltflächen. Sie können eine null statt der Funktion übergeben, wenn Sie keine Aktion beim Klicken auf die Schaltfläche beibehalten möchten.

Kotlin hat immer noch mehr Möglichkeiten, die Lesbarkeit des obigen Codes zu verbessern.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: