我开始使用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)
有没有更好的方法呢?谢谢