我开始使用 Kotlin 开发 Android 应用,但是在使用 lambda 表达式时遇到了问题。我有一个函数用于在视图中设置监听器,代码如下:
fun setListener(listener: () -> Unit) {
}
问题在于作为lambda传递的代码不会在setListener函数中执行,而是在我的代码的另一个部分执行(具体来说,当选择spinner的项目时)。因此,我必须将此lambda“保存”或“存储”到变量/属性中,以便在需要时能够执行它。有任何想法如何做到这一点吗?编辑:我通过以下方式实现了它:
private var listener: (() -> Unit)? = null
fun setListener(listener: () -> Unit) {
this.listener = listener
}
有更好的方法吗?谢谢
private get
中使用public set
)。我建议使用var listener: () -> Unit = {}
。 - mfulton26