8

View.OnClickListener()は関数またはインターフェースですか?androidでonclicklistener()メソッドを設定しようとすると、新しいView.OnClickListener()を使用しますが、私が知る限り、それは私を悩ませます。

  • これらのメソッドを使用するために、静的メソッドを含むクラスのオブジェクトを初期化する必要はありません。なぜこれを行うのですか?
  • インターフェイスを実装するためにimplementsを使用する場合、インターフェイスの静的メソッドは呼び出されません。

だから誰かが私たちがなぜそうするのか教えてもらえますか?

  • onclick()メソッドを使用するための新しいView.OnClickListener()?
  • インターフェイスの場合、View.OnClickListenerで()を使用するのはなぜですか?

お返事をありがとうございます..

4

2 に答える 2

19

静的メソッドについてあなたが何を書いているのか理解できません。View.OnClickListenerはインターフェースです:http://developer.android.com/reference/android/view/View.OnClickListener.html

ビューにクリックリスナーを設定するには、OnClickListernerインターフェイスを実装するインスタンスを渡します。http://developer.android.com/reference/android/view/View.html#setOnClickListener(android.view.View.OnClickListener

Androidでこれを行う最も一般的な方法は、OnClickListenerを実装する匿名の内部クラス( http://docs.oracle.com/javase/tutorial/java/javaOO/innerclasses.html )を定義することです。

myView.setOnClickListener(new View.OnClickListener() {
    @Override           
    public void onClick(View v) {
        // Handle view click here           
    }
});

上記のコードは、匿名の内部クラスを定義し、そのインスタンスを作成します。これは、View.OnClickListenerを実装するクラスを最初に定義することと同じです(同じクラスで定義されている場合)

class MyOnClickListener implements View.OnClickListener {
    @Override           
    public void onClick(View v) {
        // Handle view click here           
    }
}

そして後でこれを使用する

MyOnClickListener listener = new MyOnClickListener();
myView.setOnClickListener(listener);
于 2012-08-05T09:01:34.367 に答える