如果我想在 Android 中启动一个新的 Activity,我需要将 Activity 传递给 Intent。但是,不要像这样简单地传递 Kotlin 类:
val intent: Intent = Intent(this, SearchActivity::class)
我需要将 Kotlin 类作为 Java 类传递,如下所示:
val intent: Intent = Intent(this, SearchActivity::class.java)
为什么我需要添加这个额外的标识符,因为我的SearchActivity
是 .kt 文件吗?
第二个参数为Intent
您正在使用的构造函数需要一个java.lang.Class
目的。SearchActivity::class
返回一个kotlin.reflect.KClass
。你得到一个java.lang.Class
通过访问its java财产 https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/java.html。因此,你最终会得到有点奇怪的语法SearchActivity::class.java
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)