[英]Trying to pass a function parameter in Kotlin
我有一个功能:
fun test(){
Timber.d("Button Clicked")
}
我正在尝试将此函数传递给片段。 这是我的片段中的那个字段。
class MyFragment(val layout: Int) : Fragment() {
var clickEvent1: (() -> Unit)? = null
}
这就是我在开始片段交易之前设置这个字段的方式。
fragment.clickEvent1 = {test()}
我的目标是在我的片段内单击按钮时运行此函数。
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
dialog_option_1.setOnClickListener { clickEvent1 }
}
我这样做的方式有问题,因为“测试”功能没有运行。 有人可以指出我正确的方向吗? 谢谢
用
dialog_option_1.setOnClickListener(clickEvent1)
您需要将 lambda 本身传递给方法,因此您应该使用 () 括号而不是 {},这会创建一个新的 lambda,在您的情况下几乎不执行任何操作。
应该
dialog_option_1.setOnClickListener { clickEvent1() }
如果你想这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.