私は、Android(およびJava全般)でのプログラミングの赤ちゃんのステップレベルにいます。Activity が Context クラスを継承していることは理解しています。ただし、私が遭遇したすべてのコードスニペットでは、コンテキストを言及する必要があるたびに、「this」に設定されています。
私の質問は次のとおりです。コンテキストが「これ」と異なるのはいつですか?「これ」とは異なる必要があるコンテキストの実際の例を挙げていただけますか?
どうもありがとうございました。
私は、Android(およびJava全般)でのプログラミングの赤ちゃんのステップレベルにいます。Activity が Context クラスを継承していることは理解しています。ただし、私が遭遇したすべてのコードスニペットでは、コンテキストを言及する必要があるたびに、「this」に設定されています。
私の質問は次のとおりです。コンテキストが「これ」と異なるのはいつですか?「これ」とは異なる必要があるコンテキストの実際の例を挙げていただけますか?
どうもありがとうございました。
例:
class Example{
int number = 0;
public Example(int number){
this.number = number;
}
}
コンストラクターの番号とクラスの番号が同じではないことに注意してください。彼らは同じ名前を持っていますが。数=数というのは意味がありません。これを使用すると、クラスで数を評価できます。
this現在のオブジェクト (メソッドまたはコンストラクターが呼び出されているオブジェクト) への参照です。
のActivityメソッド内でオブジェクトとしてthis使用できます。ContextActivityContextThemeWrapperContextWrapperContext
Fragment一方、Aは から継承しませんContext。したがって、Context内部を取得するには、たとえばFragment呼び出す必要があります。getActivity()
これは、呼び出し元のオブジェクトに適用されますthis。
OnClick()a のメソッド内にいて、 aView.OnClickListenerを開始したいとしますActivity。
button.setOnClickListener (new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(this, NextActivity.class); // wrong because 'this' is the OnClickListener object
Intent intent = new Intent(CurrentActivity.this, NextActivity.class); // correct because 'this' is the CurrentActivity object
startActivity(intent);
}
});