setOnTouchListenerでACTION_UPが反応しない

4,261 views
Skip to first unread message

Stone

unread,
Oct 25, 2010, 6:26:26 AM10/25/10
to 日本Androidの会
Stone@調布、東京です

ImageViewにsetOnTouchListenerをつけたんですが、なぜか
ACTION_DOWNは反応するのに
ACTION_UPが反応してくれません。
ソースは以下のとおりです。
どこが悪いのでしょうか?
よろしくお願いします。

mybutton=new ImageView(this);/
mybutton.setImageBitmap(map);
mybutton.setOnTouchListener(new ImageView.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent event) {

switch (event.getAction()) {
 case MotionEvent.ACTION_DOWN:
        //---ここで何かする。
break;
 case MotionEvent.ACTION_UP:
           //----ここで何かする
break;
}
  return false;
}
});

CLERK

unread,
Oct 25, 2010, 6:45:56 AM10/25/10
to 日本Androidの会
こんばんは、CLERKです。

onTouch で自分で処理した場合は、「true」を返す必要があります。

「return false」としていますが「return true」にして下さい。

「false」を返した場合は、フレームワークの中でViewツリーに従って以降の
Viewにイベントが流れていきます。
この場合、DOWN処理を行い true を返した他のViewに対してUPイベントが流れ
てきます。

「true」を返した場合は、自ら処理した事となり処理したView移行へはイベント
が流れません。
この場合、trueを返したViewにUPイベントが流れてきます。

Stone

unread,
Oct 25, 2010, 7:11:01 AM10/25/10
to 日本Androidの会
うまくいきました。
ありがとうございます。
> > });- 引用テキストを表示しない -
>
> - 引用テキストを表示 -
Reply all
Reply to author
Forward
0 new messages