-1

可能重复:
什么是 Android 中的上下文?

我在应用程序/对象的android当前状态中读取上下文

   Intent intent=new Intent(this,SecondaryActivity.class);
   startActivity(intent);

代替this我们可以使用getApplicationContext() 但在

@Override
public void onClick(View view) {

Toast.makeText(getApplicationContext(), "Hai",Toast.LENGTH_LONG).show();
}

我们不能this在这里使用我的意思是getApplicationContext()为什么 this 也指当前对象,因此我对此感到困惑thiscontext帮助我研究它,参考分享给我..

4

2 回答 2

1

当你传递this给方法时,你的意思是this引用是 的一个实例Context,所以如果你在 Activity 中,你可以传递 this 而不是 Context。但是当你在匿名课堂上时:

button.setOnClickListener(new OnClickListener(){
     @Override
     public void onClick(){
         //here this is a reference to OnClickListener instance
     }

要传入方法ContextonClick您可以编写

MyActivity.this
于 2012-08-13T13:41:00.957 回答
1

Activity 是上下文的子类,因此所有Activity对象也是Context

android.content.Context
   ↳    android.content.ContextWrapper
       ↳    android.view.ContextThemeWrapper
           ↳    android.app.Activity

因此,如果您不能使用this,则表示this不是Context类或其子类的实例。

于 2012-08-13T13:36:56.153 回答