我最近开始使用android-ktx Kotlin扩展程序。而且我遇到了处理程序扩展,它们非常巧妙地转换了
handler.postDelayed(runnable, delayInMillis)
进入
handler.postDelayed(delayInMillis = 200L) {
// some action
}
我遇到的问题是如何转换以下代码,以使用ktx扩展名。甚至有可能吗?
handler.postDelayed(object : Runnable {
override fun run() {
doSomething()
handler.postDelayed(this, 1000)
}
}, 1000)
答案 0 :(得分:0)
您不能从内部调用lambda。一种技巧是使用函数引用:
.gitignore
答案 1 :(得分:0)
这是core.ktx软件包的一部分
您需要确保它包含在gradle文件中
implementation "androidx.core:core-ktx:1.1.0"
或更相关/最新版本
完成后,您可以进行转换:
handler.postDelayed(object : Runnable {
override fun run() {
doSomething()
}
}, 1000)
到
handler.postDelayed(delayInMillis = 200L) {
doSomething()
}