0

私は必死にこの問題を解決しようとしています。ACTION_DOWNイベントだけが私のメソッドをトリガーします。一日中、うまくいきましたが、今はもう動かなくなりましたが、何も変更しませんでした。

 public boolean onTouch(View v, MotionEvent event) {

    boolean isReleased = event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL;
    boolean isPressed = event.getAction() == MotionEvent.ACTION_DOWN;
    boolean isMoved = event.getAction() == MotionEvent.ACTION_MOVE;


        if(isPressed){
            if(Gesture_Done){
                reset_It();         
            }
            xPressed = event.getX();
            yPressed = event.getY();
            action_timelist.add(System.currentTimeMillis());
            if(action_timelist.size()>1){
                evaluate_actionlist(true);
            }
        } 

        else if(isReleased){        
            if(!Gesture_Done){
            action_timelist.add(System.currentTimeMillis());
            evaluate_actionlist(false);
            }
            Gesture_Done=false;
        }

        else if(isMoved){
            xMoved = xPressed - event.getX();
            yMoved = yPressed - event.getY();
            checkGesture();
        }
            return false;
    } 

エラーが表示されないので、修正方法がわかりません。

4

1 に答える 1

3

以下の編集したコードを使用してみてください。ほんの数時間前にまったく同じ問題が発生しました。これは、タッチイベントを使用しているにもかかわらずfalseを返したためです。以下のコードは、イベントに対応する場合はtrueを返し、それ以外の場合はfalseを返します。

public boolean onTouch(View v, MotionEvent event) {


    boolean isReleased = event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL;
    boolean isPressed = event.getAction() == MotionEvent.ACTION_DOWN;
    boolean isMoved = event.getAction() == MotionEvent.ACTION_MOVE;


        if(isPressed){
            if(Gesture_Done){
                reset_It();         
            }
            xPressed = event.getX();
            yPressed = event.getY();
            action_timelist.add(System.currentTimeMillis());
            if(action_timelist.size()>1){
                evaluate_actionlist(true);
            }
            return true;
        } 

        else if(isReleased){        
            if(!Gesture_Done){
            action_timelist.add(System.currentTimeMillis());
            evaluate_actionlist(false);
            }
            Gesture_Done=false;
            return true;
        }

        else if(isMoved){
            xMoved = xPressed - event.getX();
            yMoved = yPressed - event.getY();
            checkGesture();
            return true;
        }
            return false;
    } 
于 2012-09-16T16:30:38.140 に答える