myactivity.this,myactivity.class之间的区别,这个

时间:2013-09-22 06:22:53

标签: android eclipse android-intent

我一直在尝试在我的程序中使用Intent方法,当我使用 myactivity.this 时,代码显示没有错误...当我使用其他两个( myactivity.class或这个),eclipse显示错误。

Intent i = new Intent(myActivity.this,myActivity2.class);
startActivity(i);

当我在第一个参数中使用 myactivity.class this 时,

Eclipse显示错误未定义构造函数Intent 。为什么这样,有人能解释一下吗?

4 个答案:

答案 0 :(得分:10)

  

myActivity.this ==对上下文的反思


  

myActivity2.class ==引用类,这是它的类名


  

这个 ==这是当前类型,如果你在线程中,那么它是线程类型;如果您在活动中,那么它是活动类型;如果您在自定义类中说CAR,那么它是CAR类型

当您执行 this 时,您会收到错误,因为您不能在此主线程中使用 getApplicationContext()

当您使用 myActivity.this 它知道它将从此活动的上下文启动。

答案 1 :(得分:0)

让我给你答案:

  

当我在第一个参数中使用myactivity.class时,Eclipse会显示   未定义构造函数意图的错误。

您遇到错误的原因是您应该将有效参数传递给您尝试调用的Intent构造函数。 见:LINK

  1. 实现此类的应用程序包的上下文。
  2. 用于意图的组件类。
  3. 正如您所提到的,您尝试了 myactivity.class ,引用KITKAT'S回答此参数无效,无法传递给Intent构造函数。

    至于这个,如果你在有效的活动环境中,你不应该得到任何编译错误。

答案 2 :(得分:0)

第一个参数用于当前活动上下文,因此这个或Activity.this或getApplicationContext都可以。第二个参数指的是您要移动到的类名。这就是为什么 .this在第一个param和.class在第二个。希望你现在能得到它。

答案 3 :(得分:0)

也许您正在将此代码编写在另一个对象中,例如OnClickListener,因此它表示OnClickListener的当前对象而不是MainActivity类。 这就是为什么你应该使用MainActivity.class来引用主Activity。 在此上下文中,这表示OnClickListener的对象。