2

私は、Android(およびJava全般)でのプログラミングの赤ちゃんのステップレベルにいます。Activity が Context クラスを継承していることは理解しています。ただし、私が遭遇したすべてのコードスニペットでは、コンテキストを言及する必要があるたびに、「this」に設定されています。

私の質問は次のとおりです。コンテキストが「これ」と異なるのはいつですか?「これ」とは異なる必要があるコンテキストの実際の例を挙げていただけますか?

どうもありがとうございました。

4

5 に答える 5

1

例:

class Example{
    int number = 0;

    public Example(int number){
        this.number = number;
    }
}

コンストラクターの番号とクラスの番号が同じではないことに注意してください。彼らは同じ名前を持っていますが。数=数というのは意味がありません。これを使用すると、クラスで数を評価できます。

于 2013-10-14T10:52:18.870 に答える
0

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);
    }
});
于 2013-10-14T11:08:28.063 に答える