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)