Avatar ·

¿Cómo configurar correctamente un OnClickListener en un botón en Android con Kotlin?

¡Hola a todos! Acabo de empezar a aprender Kotlin para desarrollo Android y tengo un problema al configurar un click listener en un botón normal. Antes escribía en Java y allí todo estaba claro: button.setOnClickListener(new View.OnClickListener() { ... });. Pero en Kotlin veo muchas opciones diferentes y no entiendo cuál es la correcta.

Esto es lo que he probado:

val myButton: Button = findViewById(R.id.my_button)

// Opción 1 — solo lambda
myButton.setOnClickListener { 
    Toast.makeText(this, "¡Click!", Toast.LENGTH_SHORT).show()
}

// Opción 2 — con View explícito
myButton.setOnClickListener { view ->
    Toast.makeText(this, "Click con view: ${view.id}", Toast.LENGTH_SHORT).show()
}

// Opción 3 — como en Java, pero con sintaxis de Kotlin
myButton.setOnClickListener(object : View.OnClickListener {
    override fun onClick(v: View?) {
        Toast.makeText(this@MainActivity, "Click mediante objeto", Toast.LENGTH_SHORT).show()
    }
})