Avatar ·

Wie setze ich einen OnClickListener auf einen Button in Android mit Kotlin richtig?

Hallo zusammen! Ich habe gerade angefangen, Kotlin für die Android-Entwicklung zu lernen, und habe ein Problem mit dem Setzen eines Klick-Handlers auf einen normalen Button. Früher habe ich in Java geschrieben, und da war alles klar: button.setOnClickListener(new View.OnClickListener() { ... });. Aber in Kotlin sehe ich viele verschiedene Varianten und verstehe nicht, welche davon richtig ist.

\n\n

Hier ist, was ich ausprobiert habe:

\n\n
val myButton: Button = findViewById(R.id.my_button)\n\n// Variante 1 — einfaches Lambda\nmyButton.setOnClickListener { \n    Toast.makeText(this, "Klick!", Toast.LENGTH_SHORT).show()\n}\n\n// Variante 2 — mit expliziter Angabe von View\nmyButton.setOnClickListener { view ->\n    Toast.makeText(this, "Klick mit view: ${view.id}", Toast.LENGTH_SHORT).show()\n}\n\n// Variante 3 — wie in Java, aber mit Kotlin-Syntax