Kotlin Android 启动新的 Activity [英] Kotlin Android start new Activity

查看:23
本文介绍了Kotlin Android 启动新的 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆