0
View  firstButton   = findViewById ( R.id.button1 );    
firstButton.setOnClickListener(this);     
View secondButton = findViewById(R.id.button2);    
secondButton.setOnClickListener(this);

コードでは、thisキーワードwhisによって参照されるものは、の引数として渡されます。setOnClickListener()

4

2 に答える 2

3

これは、の現在のインスタンスになりActivityます。(それはまたView、私が思うに)かもしれません。

最終的にthisは、それが存在するクラスのインスタンスを指します。

于 2012-07-10T21:33:52.100 に答える
2

「this」は常に現在のインスタンス、つまり現在実行中のメソッドが属するインスタンスへの参照です。したがって、現在実行中のメソッドが Activity クラスのメソッドである場合、「this」はこの Activity クラスのインスタンスを参照します。

さらに重要なことは、特に setOnClickListener に関して、'this' は、正確なタイプに関係なく、View.OnClickListenerインターフェイスを実装する (したがって、クリック イベントのリスナーとして動作する) インスタンスを参照する必要があります。これは、Button.setOnClickListener が、クリック イベントのリスナーである「OnClickListener」を引数として想定しているためです。メソッドのシグネチャは次のとおりです。

void Button.setOnClickListener(View.OnClickListener l)
于 2012-07-10T21:45:56.960 に答える