2012年2月18日土曜日

ボタン クリックイベントをXMLに定義する方法

①XML で、Button ウィジェットなどのOn click 欄にメソッド名を書く。(※ここでは、hoge とする)

②public でView を引数にしてメソッド定義。(※ボタン2つ、XMLで定義しているId:<button1><button2>として、それぞれのId で分岐可能)
public void hoge(View view) {
     if(findViewById(R.id.button1)==view){
      ((Button) view).setText("押したよ~1");
     }else if(findViewById(R.id.button2)==view){
      ((TextView) view).setText("押したよ~2");
     }
 }

試してみたら、キャストするのButton でもTextView でも、ボタンの文字が押したよ~に変わってくれた。この辺はよく分からん。
ボタンごとに定義するメソッド名を変えて、Javaでそれぞれ書いた方が分かりやすいかも?


追記)
上記の書き方だと、どうもバグ?みたいな現象がありました。
また、ボタン1つに1つのメソッドをそれぞれ定義した方が分かりやすいと思いました。

0 件のコメント: