2011年7月5日火曜日

android:onClickに関するmemo

完全に私的メモです。
元ネタはこちら
http://groups.google.com/group/android-group-japan/browse_thread/thread/1aa53a356930e039
読んでて良かった、グループのメール(ダイジェスト)w
まあ、真面目に読みだしたの最近ですけど…
でも結構困ったときに、まずAndroid関連のグループのメールに検索かけると何とかなりますよね。

私も同じことを疑問に持ったことがありましたが、「まあそういうもんだろ」で終わってました。
質問者と回答者に感謝♪


以下memo

 <Button
  android:id="@+id/button1"
  android:onClick="hoge" />
ってリーソスに書くと、ソース側で
 public void hoge(View v) {
  // クリック時の処理
 }
と書けるのは知ってた。

んじゃー、2個ボタンあったらどーするの?
 <Button
  android:id="@+id/button1"
  android:onClick="hoge1" />

 <Button
  android:id="@+id/button2"
  android:onClick="hoge2" />
 public void hoge1(View v) {
  // クリック時の処理
 }
 public void hoge2(View v) {
  // クリック時の処理
 }
もちろんこれでも動く。

でもこう書けるよね。
 <Button
  android:id="@+id/button1"
  android:onClick="hoge" />

 <Button
  android:id="@+id/button2"
  android:onClick="hoge" />
 public void hoge1(View v) {
  // クリック時の処理
  switch( v.getId()){
  case R.id.button1:
   // button1の処理
   break;
  case R.id.button2:
   // button2の処理
   break;
  }
 }

改めてソース読めば、そりゃそうだって内容ですよね。
id割り振ってんだからそれで分けられるだろと。
でも見るまで気がつかなかった…。

ID以外にもあえて分岐条件に使ったら何か面白いものが書けそうな気もしますね。

0 件のコメント:

コメントを投稿