Avatar ·

Como configurar corretamente um OnClickListener em um botão no Android com Kotlin?

Olá a todos! Comecei a estudar Kotlin para desenvolvimento Android recentemente e estou com um problema ao configurar um click handler em um botão comum. Antes eu programava em Java, e lá era tudo claro: button.setOnClickListener(new View.OnClickListener() { ... });. Mas em Kotlin vejo muitas opções diferentes e não entendo qual é a correta.

Aqui está o que tentei:

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

// Opção 1 — apenas lambda
myButton.setOnClickListener { 
    Toast.makeText(this, "Clique!", Toast.LENGTH_SHORT).show()
}

// Opção 2 — com View explícito
myButton.setOnClickListener { view ->
    Toast.makeText(this, "Clique com view: ${view.id}", Toast.LENGTH_SHORT).show()
}

// Opção 3 — como em Java, mas com sintaxe Kotlin
myButton.setOnClickListener(object : View.OnClickListener {
    override fun onClick(v: View?) {
        Toast.makeText(this@MainActivity, "Clique via objeto", Toast.LENGTH_SHORT).show()
    }
})