-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()。つまり、これが現在のオブジェクトも参照している理由です。したがって、混乱して、これを研究するのthiscontext役立ちます。参照は私を共有します。

4

2 に答える 2

1

アクティビティはコンテキストのサブクラスであるため、すべてのActivityオブジェクトもContext:です。

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

したがって、使用できない場合は、クラスまたはそのサブクラスのインスタンスではないthisことを意味します。thisContext

于 2012-08-13T13:36:56.153 に答える
1

メソッドに渡すときは、参照がのインスタンスであるthisことを意味します。したがって、Activityにいる場合は、Contextの代わりにこれを渡すことができます。しかし、あなたが匿名のクラスにいるとき:thisContext

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

メソッドを渡すContextには、次のonClickように記述できます

MyActivity.this
于 2012-08-13T13:41:00.957 に答える