0

ビューでは、シングルタップとダブルタップの両方を検出したいと考えています。それは私とうまく動作します。シングルタップとダブルタップの両方を検出できます。私のコードを見つけてください

@Override
    public boolean onTouch(View view, MotionEvent me) {
        // No dragging during animation at the moment.
        // TODO: Stop animation on touch event and return to drag mode.
        boolean result = true;
        result = gestureDetector.onTouchEvent(me);//return the double tap events
        if(result)
            return false;

switch (me.getAction()) {
        case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_CANCEL:
        case MotionEvent.ACTION_UP:
}


private class GestureListener extends GestureDetector.SimpleOnGestureListener {

        private String fileName;



        @Override
         public boolean onSingleTapConfirmed(MotionEvent e) {
          // TODO Auto-generated method stub

          return false;
         }

        // event when double tap occurs
        @Override
        public boolean onDoubleTap(MotionEvent e) {

            float x = e.getX();
                float y = e.getY();
                if(player!=null && player.isPlaying())
                {
                    player.stop();
                }
                else
                {
                    setFileName(x);
                    player = new AudioPlayer(fileName);
                    player.play();
                }


            return true;
        }


    }

Action_UP イベントでいくつかのコードを実行しています。そのため、ダブルタップしても、最初のタップで ACTION_UP イベントが呼び出され、対応するコードが実行されます。これを未然に防ぎたい。これどうやってするの。ユーザーがジェスチャを完了したときにのみ ACTION_UP が呼び出されるようにしたいだけです。彼の部分的なジェスチャーの直後ではありません。この場合、最初のタップの指で呼び出されます。

どうすればこれをアンドロイドで動作させることができますか?

ありがとう

4

1 に答える 1