« NEC Androidチームを設立 | メイン | android Verizonのイベントは10月28日(US) »

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{
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    public void fromLayoutFileEvent(View view){
		Log.v(TAG,"fromLayoutFile");
    }

解説

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

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

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

ブログ内の関連する記事

トラックバック

このエントリーのトラックバックURL:
http://www.taosoftware.co.jp/mt/mt-tb.cgi/384