Kotlin Intent 语法错误
Posted
技术标签:
【中文标题】Kotlin Intent 语法错误【英文标题】:Kotlin Intent syntax error 【发布时间】:2018-08-16 20:22:57 【问题描述】:我试图在 android Studio 的 Kotlin 中设置 Intent
以启动另一个 Activity.kt
:
val i : Intent = Intent(this, MainActivity::class.java)
Android Studio 显示错误,但无法编译:
Error:(23, 26) None of the following functions can be called with the arguments supplied:
public constructor Intent(p0: Context!, p1: Class<*>!) defined in android.content.Intent
public constructor Intent(p0: String!, p1: Uri!) defined in android.content.Intent
我认为语法是正确的,那么有什么问题呢?
【问题讨论】:
是Context
类型的'this`?
这行代码写在哪里?在女巫课上?在一个方法中?这是***声明?请不要复制整个班级,而是复制相关部分。
我发现错误 - this@MainActivity 是正确的
val i = Intent(this@MainActivity, Activity::class.java)
【参考方案1】:
val i = Intent(this@MainActivity, Activity::class.java)
【讨论】:
感谢@kamilp +1 为工作溶胶。但是您能否解释一下为什么我们需要在语句末尾附加.java
。
@Ravi Vaniya 从我看到的 .java 文件中是一个来自文件 JvmClassMapping.kt 的 kotlin 方法。 /** * 返回与给定 [KClass] 实例对应的 Java [Class] 实例。 */ '@Suppress("UPPER_BOUND_VIOLATED") public val 您应该按如下方式使用包上下文:
val intent = Intent(this@LoginActivity,MainActivity::class.java)
startActivity(intent)
谢谢。
【讨论】:
【参考方案3】:你应该这样写:
val i : Intent by lazy Intent(this, MainActivity::class.java)
【讨论】:
这将给出与原始问题完全相同的编译错误。你的回答并没有真正的帮助。 是的,如果this
不是Context
的实例以上是关于Kotlin Intent 语法错误的主要内容,如果未能解决你的问题,请参考以下文章
Android:Kotlin详细入门学习指南-函数-基础语法
Android:Kotlin详细入门学习指南-高阶函数-基础语法
Android:Kotlin详细入门学习指南-高阶函数-基础语法
Android:Kotlin详细入门学习指南-类和对象(上)-基础语法