我一直在尝试在我的程序中使用Intent方法,当我使用 myactivity.this 时,代码显示没有错误...当我使用其他两个( myactivity.class或这个),eclipse显示错误。
Intent i = new Intent(myActivity.this,myActivity2.class);
startActivity(i);
当我在第一个参数中使用 myactivity.class 或 this 时,
Eclipse显示错误未定义构造函数Intent 。为什么这样,有人能解释一下吗?
答案 0 :(得分:10)
myActivity.this ==对上下文的反思
myActivity2.class ==引用类,这是它的类名
这个 ==这是当前类型,如果你在线程中,那么它是线程类型;如果您在活动中,那么它是活动类型;如果您在自定义类中说CAR,那么它是CAR类型
当您执行 this 时,您会收到错误,因为您不能在此主线程中使用 getApplicationContext()
当您使用 myActivity.this 它知道它将从此活动的上下文启动。
答案 1 :(得分:0)
让我给你答案:
当我在第一个参数中使用myactivity.class时,Eclipse会显示 未定义构造函数意图的错误。
您遇到错误的原因是您应该将有效参数传递给您尝试调用的Intent构造函数。 见:LINK
正如您所提到的,您尝试了 myactivity.class ,引用KITKAT'S回答此参数无效,无法传递给Intent构造函数。
至于这个,如果你在有效的活动环境中,你不应该得到任何编译错误。
答案 2 :(得分:0)
第一个参数用于当前活动上下文,因此这个或Activity.this或getApplicationContext都可以。第二个参数指的是您要移动到的类名。这就是为什么 .this在第一个param和.class在第二个。希望你现在能得到它。
答案 3 :(得分:0)
也许您正在将此代码编写在另一个对象中,例如OnClickListener,因此它表示OnClickListener的当前对象而不是MainActivity类。 这就是为什么你应该使用MainActivity.class来引用主Activity。 在此上下文中,这表示OnClickListener的对象。