私は、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
使用できます。Context
Activity
ContextThemeWrapper
ContextWrapper
Context
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);
}
});