4

私は興味があり、ほとんどの場合、私が理解できないプロパティ\コードを使用することを恐れているため、これを少し尋ねています。イベントに適したリスナーインターフェイスを実装することにより、Javaのすべてのイベントが機能することを理解しています。2 つのボタンのアクティビティに onClick を実装し、3 つ目のボタンに android:onClick="..." プロパティを使用してメソッドを定義するとどうなりますか? 私はこの記事を見つけたので、それを読んだ後、OnClickListener を実装する匿名クラスを使用して実装されている可能性が高いことを理解しましたが、\それについてもっと知りたいと思います。私の利点に?アンドロイドのリファレンスは、それがどのように機能するかについて明確ではありません,,,

4

2 に答える 2

8

リフレクションを使用して、実行時に呼び出すメソッドを見つけます。これはビューのプロパティであるため、ビューには、このプロパティが設定されているかどうかを確認する関連コードがあり、アクティビティのメソッド名を見つけてトリガーします。

ビューは常に特定のアクティビティのコンテキストにバインドされているため、リフレクションを通じてこのパブリック メソッドを呼び出すことができます。

ビュー クラスのソース コードは、こちらで確認できます。この状況が処理されている行番号 2003 を確認できます。

View クラスのソース コード

于 2013-04-05T17:48:02.953 に答える
1

質問に簡単に答えるために、ここで指定する名前は、そのレイアウトをロードしたアクティビティのパブリック メソッドです。そのメソッドは、View 型の単一の引数を取る必要があります。

そのような:

android:onClick="myMethod"


public void myMethod(View view) {
}
于 2013-04-05T17:56:56.750 に答える