首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Kotlin Android启动新活动

Kotlin Android启动新活动
EN

Stack Overflow用户
提问于 2017-08-05 12:16:14
回答 19查看 159.8K关注 0票数 122

我想在Android上启动另一个活动,但我得到了这个错误:

请指定构造函数调用;分类器“Page2”没有伴生对象

在实例化Intent类之后。我应该怎么做才能纠正这个错误?我的代码:

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)
    }

}
EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2017-08-05 13:56:20

要在java中启动Activity,我们编写了Intent(this, Page2.class),基本上你必须在第一个参数中定义Context,在第二个参数中定义目标类。根据源代码中的Intent方法-

 public Intent(Context packageContext, Class<?> cls)

如你所见,我们必须在第二个参数中传递Class<?>类型。

通过编写Intent(this, Page2),我们从来没有指定我们要传递类,我们试图传递class类型,这是不可接受的。

使用::class.java,它是kotlin中.class的替代品。使用以下代码启动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)
票数 214
EN

Stack Overflow用户

发布于 2017-08-07 13:06:26

简单地说,您可以使用这个简单的方法在KOTLIN中启动Activity

val intent = Intent(this, SecondActivity::class.java)
intent.putExtra("key", value)
startActivity(intent)
票数 43
EN

Stack Overflow用户

发布于 2018-01-11 14:39:26

要开始一个新的活动,

startActivity(Intent(this@CurrentClassName,RequiredClassName::class.java)

因此,将您的代码更改为:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    fun buTestUpdateText2 (view: View) {
        startActivity(Intent(this@MainActivity,ClassName::class.java))

        // Also like this 

        val intent = Intent(this@MainActivity,ClassName::class.java)
        startActivity(intent)
    }
票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45518139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档