我有 View 和一个 CircleShape ,它应该在此视图中显示吐司。我在主要活动中使用它。这是我的界面
interface OnClickListenerInterface {
fun onClick()
}
它是 CircleShape(它是我的 xml 中的视图)和我的视图中的侦听器。我想在我的活动中实现 OnClick。
var listener: OnClickListenerInterface? = null
mCircleShape.setOnClickListener(View.OnClickListener {
if (listener == null) return@OnClickListener
listener!!.onClick()
})
我知道,在 Kotlin getters 和 setters 通用自动化中,但如果它是私有的,我如何设置监听器。这是我的活动中的代码,但它不起作用
CircleShape.listener = object :OnClickListenerInterface{
override fun onClick() {
ToastUtils.showSuccessMessage(getContext(),"pressed")
}
}
我应该如何在 Kotlin 中使用回调,onClickListenere?
原文由 manwhotrycoding 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 lambda 的更简单的解决方案。
在
CircleShape.kt
中,声明一个 lambda 函数。在你的活动中