コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

Android TIPS No.04 イベント処理をxmlに記述する

イベント処理をxmlに記述する

onClickイベントはレイアウトxmlファイルに記載することもできる。

OnClickListenerはいらんのですね - My Happiness

http://d.hatena.ne.jp/ats337/20110307/1299509302

以下の条件でプロジェクトを作成する。

項目 内容
Project name OnClickActivity
Build Target Android 1.6
Application name OnClickActivity
Package name sample.oca
Create Activity OnClickActivity
Min SDK Version 4

まず、main.xmlを以下のようにする。main.xmlでonClick属性にその要素をクリックされた際に呼び出されるメソッド名を記載する。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <Button
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="押す"
        android:onClick="click"
        />
</LinearLayout>

OnClickActivity.javaは以下のようにする。

package sample.oca;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class OnClickActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void click(View v) {
        Toast.makeText(getApplicationContext(), "クリックされました",
                Toast.LENGTH_SHORT).show();
    }
}

レイアウトで指定したメソッドの定義は以下のようにする。

public void methodName(View v)

実行結果は以下。定義だけでクリックイベントを実装でき非常に簡単である。