这个功能里面有什么?

时间:2014-04-25 13:27:01

标签: android android-intent

我是否正确地认为"这个"在以下两个命题中是一样的吗?:

public class TheClass extends Activity implements onItemClick {

    public void onItemClick( ... ) {

        Intent intent1 = new Intent(this, SomeClass.class);          // proposition 1
        Intent intent2 = new Intent(TheClass.this, SomeClass.class); // proposition 2
        ...
    }
}

如果TheClass没有实现onItemClick并且意图是在匿名函数内创建的,该怎么办?

编辑:TheClass扩展了Activity

1 个答案:

答案 0 :(得分:0)

Intent的第一个参数是有效的上下文。在您的情况下,这不是指有效的上下文。

http://developer.android.com/reference/android/content/Intent.html#Intent(android.content.Context,java.lang.Class)

thisTheClass.this是指TheClass。但TheClass并未扩展Activity。这不是你想要的。您需要一个有效的上下文作为第一个参数

 Intent intent1 = new Intent(ActivityName.this, SomeClass.class);

您可能需要查看

Why do you have to pass this Context as a parameter in Android development?

自编辑

public class TheClass extends Activity implements onItemClick {

两个

Intent intent1 = new Intent(this, SomeClass.class);          
Intent intent2 = new Intent(TheClass.this, SomeClass.class);

参考扩展活动的TheClass

java.lang.Object
 ↳    android.content.Context                 //see this 
   ↳    android.content.ContextWrapper
       ↳    android.view.ContextThemeWrapper
           ↳    android.app.Activity    // see this 
  

如果TheClass没有实现onItemClick并且意图是   在匿名函数内创建?

如果匿名内部类使用TheClass.thisthis不是有效的上下文。