当前位置: 首页 > 知识库问答 >
问题:

尝试在Kotlin中传递函数参数

孙辰阳
2023-03-14

我有一个功能:

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 }
}

共有1个答案

连德水
2023-03-14

使用

dialog_option_1.setOnClickListener(clickEvent1)

您需要将lambda本身传递给方法,因此应该使用()括号而不是{},这将创建一个新的lambda,在您的情况下几乎什么都不做。

 类似资料:
  • 问题内容: 请告知如何将参数传递给使用的函数。 我的例子是不正确的。 问题答案: 您需要创建一个匿名函数,以便不会立即执行实际函数。

  • 本文向大家介绍如何在PowerShell函数中传递参数?,包括了如何在PowerShell函数中传递参数?的使用技巧和注意事项,需要的朋友参考一下 您可以在PowerShell函数中传递参数,并且要捕获这些参数,需要使用参数。通常,当您在函数外部使用变量时,您实际上不需要传递参数,因为变量本身是Public,可以在函数内部访问。但是在某些情况下,我们需要将参数传递给函数,下面的示例说明了如何编写该

  • 我正在处理平台频道(PlatformChannels),试图从Kotlin(Kotlin)到Flatter(颤振)进行通信。尝试实际执行颤振平台频道文档中解释的操作,但方向相反: 通道文件颤振平台 其思想是从MainActivity上的ConfigureFlatterEngine函数调用颤振函数。kt级。 为此,我做了,在颤振方面,梅因。dart(颤振的默认示例): 从Kotlin方面来说,我只是

  • 我想在函数中传递参数,但它给出了一个错误,这个语法保留供将来使用;要调用引用,请将其括在括号中:(foo::bar)(args)。此外,我还想制作一个genric runFunction,它可以接受任何参数,例如Int、String等。在这个示例代码中,我将sumInt(2)发送给runFunction,我还想发送concatatestring(“John”)。任何人都知道如何做到这一点。我试着搜

  • 问题内容: 我想将参数(即字符串)传递给Onclick函数。目前,我这样做: 例如,result.name等于字符串“ Add”。当我单击此按钮时,出现一个错误,提示未定义添加。由于此函数调用可以完美地与数字参数一起使用,因此我认为它与字符串中的符号“”有关。以前有人遇到过这个问题吗? 问题答案: 看起来您是从字符串构建DOM元素。您只需要在result.name周围添加一些引号即可: 您实际上应

  • 我正在尝试将侦听器从操作传递给类(适配器)。 在java中(操作代码): (来自适配器的代码) 它起作用了。 现在我试着翻译成kotlin。我先翻译动作(把动作翻译成kotlin): 在这一点上仍然有效。适配器的代码仍在java中,类的代码仍在kotlin中。现在,我将适配器转换为kotlin: 现在它不起作用了。操作未编译。 错误:无法推断此参数“v”的类型。必需的视图。OnClickListe