Kotlin Android开始新的活动

我想开始在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) } } 

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

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

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

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

使用::class.java::class.java.class的替代方法。 使用下面的代码来开始你的Activity

 Intent(this, Page2::class.java) 

你可以试试这个,

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

尝试这个

 val intent = Intent(this, Page2::class.java) startActivity(intent) 

这是因为你的Page2类没有类似于Java中的static的伴随对象,所以要使用你的类。 为了将你的课程作为参数传递给Intent ,你将不得不这样做

 val changePage = Intent(this, Page2::class.java)