Avatar ·

How to properly set OnClickListener on a button in Android using Kotlin?

Hello everyone! I've just started learning Kotlin for Android development, and I'm having trouble setting up a click handler on a regular button. Previously I wrote in Java, and everything was clear there: button.setOnClickListener(new View.OnClickListener() { ... });. But in Kotlin I see many different options and don't understand which one is correct.

\n\n

Here's what I've tried:

\n\n
val myButton: Button = findViewById(R.id.my_button)\n\n// Option 1 — simple lambda\nmyButton.setOnClickListener { \n    Toast.makeText(this, "Click!", Toast.LENGTH_SHORT).show()\n}\n\n// Option 2 — with explicit View parameter\nmyButton.setOnClickListener { view ->\n    Toast.makeText(this, "Click with view: ${view.id}", Toast.LENGTH_SHORT).show()\n}\n\n// Option 3 — like in Java, but with Kotlin syntax\n