在android程序中,我有以下代码:
clockCheckBox.setOnClickListener((object: View.OnClickListener {
override fun onClick(view: View): Unit {
if (clockCheckBox.isChecked())
enableClocks()
else
disableClocks()
}
}))
在 Android Studio 中,会出现一个工具提示,上面写着,
我试图这样做,但我得到的只是语法错误。你能告诉我正确的语法吗?我或许应该解释一下,这段代码在我的 Activity 的
onCreate
方法中,clockCheckBox 是一个定义为的局部变量val clockCheckBox = findViewById(R.id.clockCheckBox) as CheckBox
最佳答案
上面的代码可以简化如下:
// v--- parentheses is unnecessary
setOnClickListener {
// v--- boolean property parenthess is unnecessary
if (clockCheckBox.isChecked)
enableClocks()
else
disableClocks()
}
您可以进一步查看 Java Interoperability。
关于android - 将函数调用转换为 Lambda (SAM),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45199217/