相关疑难解决方法(0)

将lambda存储在kotlin中的变量中

我开始使用kotlin开发Android,我有一个lambda问题.我有一个函数在我的视图中设置一个监听器,如下所示:

fun setListener(listener: () -> Unit) {
}
Run Code Online (Sandbox Code Playgroud)

问题是作为lambda传递的代码不会在setListener函数中执行,它将在我的代码的另一部分执行(特别是当选择一个微调器的项目时)所以我必须"保存"或"存储"将此lambda转换为变量/属性,以便我能够在需要时执行它.有什么想法怎么做?

编辑:我通过以下方式实现了:

private var listener: (() -> Unit)? = null

fun setListener(listener: () -> Unit) {
    this.listener = listener
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?谢谢

lambda android kotlin

10
推荐指数
2
解决办法
5592
查看次数

标签 统计

android ×1

kotlin ×1

lambda ×1