onClickとOnClickListenerの違い

ボタンを押したときに呼び出すメソッドの指定は XML 側と Java 側どちらにも実装できますが、リスナーを使うことが推奨されています。

何が違うんだ?と思ったら、Udacity で取り上げられていました。

スポンサーリンク

onClick

レイアウトファイルの XML 側で実装する場合は onClick 属性で呼び出します。

※ View.OnClickListener のメソッドの方ではないです。

OnClickListenter

一方、View.OnClickListenter を使って Java 側で実装する場合は、さっきより複雑になります。

こうすることで、ボタンがクリックされたときに onClick メソッドが処理されるようになります。見やすいように敢えて分けてみましたが、下のようにまとめて書くことが多いようです。

リスナーが推奨される理由

onClick 属性を用いたほうが簡潔にコーディングできて見やすいのですが、リスナーを使うのが一般的です。

その理由として、onClick 属性でメソッドを指定した場合、どのファイル内のメソッドかというのが問題になることが挙げられます。リスナーで実装する方式にすれば、呼び出されるメソッドはそのファイル内に限られるので問題になりません。なるほど。

最後に

あと、蛇足ですが、このブログにソースコードを埋め込むのに使ってる Crayon Syntax Highlighter は Android も XML もハイライト非対応なんですね、Arduino には対応してるのに!

スポンサーリンク

コメント・質問する