android:onClick Layoutファイルにメソッドが記載できる(SDK1.6 新機能)

このブログは毎日最低一記事更新する事を一つの目標として、自分で自分を縛っています。(1回更新を怠るとそのまま更新せずに放置しそうなので)。このためある程度記事を書きためています。最近はAndroid関連のニュースが多く、書きためた記事の中で、時間軸のあまりない記事は、後回しになってしまうのですが(プログラム関連記事に多い)この記事もかなり前に書いたものです。

本家Developerブログの方で、「UI framework changes in Android 1.6」という記事がでていますが、その中の一部Easier click listenersの省と同じ内容です。あちらの方が詳しいので日本語でざくっと読んで、本家ブログを見るのがお勧めです。

Android 1.6 Version Notesに、
New XML attribute android:onClick to specify a View’s View.OnClickListener from a layout file.
という記載があり、レイアウトファイルに、直接OnClickListerを呼べるようになったということなので早速試してみました。

レイアウトファイル

main.xmlファイル

android:onClickに、ボタンを押したときにfromLayoutFileEvent(名前は任意)というメソッドを呼ぶのを指定

<Button android:text="@+id/Button01"android:id="@+id/Button01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="fromLayoutFileEvent"></Button>

Activity

先ほど指定た、fromLayoutFileEventを、Activityに記載

public class Main extends Activity{@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}public void fromLayoutFileEvent(View view){Log.v(TAG,"fromLayoutFile");}

解説

以上で終了です。ボタンを押すと、ログが出力されます。

今までView.OnClickListenerの記載は、いつも書く事が同じで退屈な処理でした。これで少しはソースコードがすっきりするのかなとも思いますが、逆に後からみてこのメソッドどこから呼ばれているんだ??といった事にもなりかねず、きちんとしたルール化をして使っていくのが良いと思います。

うーん、VBのようなGUIでアプリを作るような事を考えて拡張でしょうか?今後に期待です。

ブログ内の関連する記事


コメント

このブログの人気の投稿

島へ移住の話【炊飯】

ドローンプログラミング体験教室を伊豆大島の小学校でしてきました

情報処理安全確保支援士登録証のカード型が届きました。