Avatar ·

如何在Android中使用Kotlin正确设置按钮的OnClickListener?

大家好!我刚开始学习用于Android开发的Kotlin,在给普通按钮设置点击处理程序时遇到了问题。以前我用Java写代码时一切都很清楚:button.setOnClickListener(new View.OnClickListener() { ... });。但在Kotlin中我看到很多不同的写法,不知道哪个是正确的。

以下是我尝试过的代码:

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

// 方式1 — 简单的lambda
myButton.setOnClickListener { 
    Toast.makeText(this, "点击!", Toast.LENGTH_SHORT).show()
}

// 方式2 — 显式指定View
myButton.setOnClickListener { view ->
    Toast.makeText(this, "点击并带有view: ${view.id}", Toast.LENGTH_SHORT).show()
}

// 方式3 — 类似Java但使用Kotlin语法
myButton.setOnClickListener(object : View.OnClickListener {
    override fun onClick(v: View?) {
        Toast.makeText(this@MainActivity, "通过对象点击", Toast.LENGTH_SHORT).show()
    }
})