Kotlin Android 启动新的 Activity [英] Kotlin Android start new Activity
问题描述
我想在 Android 上开始另一个活动,但出现此错误:
I want to start another activity on Android but I get this error:
请指定构造函数调用;分类器Page2"没有伴随对象
Please specify constructor invocation; classifier 'Page2' does not have a companion object
在实例化 Intent
类之后.我应该怎么做才能纠正错误?我的代码:
after instantiating the Intent
class. What should I do to correct the error? My code:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
fun buTestUpdateText2 (view: View) {
val changePage = Intent(this, Page2)
// Error: "Please specify constructor invocation;
// classifier 'Page2' does not have a companion object"
startActivity(changePage)
}
}
推荐答案
在java中启动一个Activity
我们写了Intent(this, Page2.class)
,基本上你必须在第一个参数中定义 Context
,在第二个参数中定义目标类.根据源码中的Intent
方法 -
To start an Activity
in java we wrote Intent(this, Page2.class)
, basically you have to define Context
in first parameter and destination class in second parameter. According to Intent
method in source code -
public Intent(Context packageContext, Class<?> cls)
如您所见,我们必须在第二个参数中传递 Class>
类型.
As you can see we have to pass Class<?>
type in second parameter.
通过编写Intent(this, Page2)
,我们从不指定我们要传递类,我们试图传递不可接受的class
类型.
By writing Intent(this, Page2)
we never specify we are going to pass class, we are trying to pass class
type which is not acceptable.
使用 ::class.java
,它是 kotlin 中 .class
的替代品.使用以下代码启动您的Activity
Use ::class.java
which is alternative of .class
in kotlin. Use below code to start your Activity
Intent(this, Page2::class.java)
示例 -
val intent = Intent(this, NextActivity::class.java)
// To pass any data to next activity
intent.putExtra("keyIdentifier", value)
// start your next activity
startActivity(intent)
这篇关于Kotlin Android 启动新的 Activity的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!