OnTouchLisner の使い方

複数ボタンがあってタッチイベントに反応させるには、下記のようにする。
当然と言えば当然だが、山ほどあってもABC...Zを全部書かなきゃならん・・・orz
onTouch メソッドはの方はABC..Z全部書かなくても良いかも知れないけど、目的を達するには書かなきゃだめ。


public class KeyboardActivity extends Activity implements OnTouchListener
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.sample);

// 各イメージボタンに OnTouchListner を提供
findViewById(R.id.ImageButtonA).setOnTouchListener(this);
findViewById(R.id.ImageButtonB).setOnTouchListener(this);
findViewById(R.id.ImageButtonC).setOnTouchListener(this);
    :
findViewById(R.id.ImageButtonZ).setOnTouchListener(this);
}

@Override
public boolean onTouch(View view, MotionEvent motionevent)
{
Log.d(TAG, "viewid=" + view.getId())
switch (view.getId()) {
case R.id.ImageButtonA:
case R.id.ImageButtonB:
case R.id.ImageButtonC:
    :
case R.id.ImageButtonZ:
switch (motionevent.getAction()) {
case MotionEvent.ACTION_DOWN:
Log.d(TAG, "action UP")
break;
case MotionEvent.ACTION_UP:
Log.d(TAG, "action DOWN")
break;
}
}
return false; // false だとAndroid側で処理が続けられてしまうので、ACTION_UP も検知したい時は false にする
}
}

この件には余り関係ないけど
http://blog.goo.ne.jp/marunomarunogoo/e/344eb3c63367ab9dc5bc71f1c7265190
がすごい。
やっぱりここまでしないといかんですね。
WEBでのプログラミングで鈍った。