リンク:【ソース+水=麦茶色の何か】

参考:

匿名クラス等を使ってボタンごとに書いていくのもいいのだが、うまく書かないと、ソースがごちゃごちゃしてしまう。

そこで、xmlレイアウトでそれぞれのボタンごとに呼び出される関数の名前を指定しておき、ソースにその実体を書くという方法を説明する。

なお、この方法はAndroid SDK1.6以降で導入された模様。

具体例を以下に示す。まずxmlファイルに、

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

と書く。ここで重要なのは、最後の行の、「android:onClick」に「"button1_click_handler"」というハンドラーを指定している部分。

続いて、ソースファイルを開き、アクティビティのクラス内に先ほど指定して関数(button1_click_handler)の実体を記述する。

public class hogehoge extends Activity{
    ・
    ・
    public void button1_click_handler(View view){
        Log.v(TAG,"Button1 clicked");
    }
}

これで、button1をクリックすると「button1_click_handler」が呼ばれるようになった。

なお、ログはデバッグ画面やlogcatで確認できる。