0

ボタンがあり、onclickListenerを設定している場合のように、匿名クラスのバックエンド動作に関して少し混乱しています。

Button B = (Button)findViewById(R.id.myButton);
B.setOnClickListener(new onClickListener(){ 
          public void onClick(View V){ 
              Log.v("","Hello world");
          }
 ));

ここで実際にバックエンドで何が起こっているのですか?これはView.OnClickListenerまたは他の何かのインターフェースを実装しますか?

4

3 に答える 3

2

はい、OnClickListenerインターフェースを実装する新しい名前のないクラスのインスタンスです。

于 2012-05-26T18:24:46.573 に答える
1

匿名クラスは、常にクラスを拡張するか、インターフェースを実装する必要があります。

b.setOnClickListener(new OnClickListener() { 
    public void onClick(View V) { 
        Log.v("", "Hello world");
    }
});

この場合、View.OnClickListenerインターフェースを実装する新しい匿名(名前のない)クラスを作成しています。これは、setOnClickListenerメソッドが型の引数を取るために機能しますView.OnClickListener

于 2012-05-26T18:29:40.067 に答える