Umgang mit Touch-Ereignissen - onInterceptTouchEvent und onTouchEvent

Ich möchte in der Lage sein swipe irgendwo auf dem Bildschirm zum aufrufen einer bestimmten Funktion. Aber ich habe auch Buttons im Linear Layouts dass ich in der Lage sein wollen klicken Sie auf. Wenn ich swipe auf eine Button ich will onInterceptTouchEvent zu Intercept den Aufruf der Button's onTouchEvent und führen Sie eine swipe-Aktion. Und wenn ich klicken Sie einfach auf eine Button ich möchte nicht das onInterceptTouchEvent genannt zu werden. Vielmehr möchte ich die Button's onTouchEvent genannt zu werden, und führen Sie eine Button click

Aber ich bekomme Fehler, wenn ich versuche, die Umsetzung onInterceptTouchEvent.

Hier ist mein code:

public class Game extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.game_activity);

   //other code....
}
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            break;
        case MotionEvent.ACTION_CANCEL:
        case MotionEvent.ACTION_UP:
            swipeScreen(); //if action recognized as swipe then swipe
            break;
        case MotionEvent.ACTION_MOVE:
            float x = event.getX();
            float y = event.getY();
            float xDelta = Math.abs(x - mLastX);
            float yDelta = Math.abs(y - mLastY);

            if (yDelta > xDelta) {
                return true;
            }
            break;
    }

    return false;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    ButtonOnClick(); //if not a swipe, then button click
    return true;
}

Zuerst wird der Fehler sagt: The method onInterceptTouchEvent(MotionEvent) of type Game must override or implement a supertype method

Dann statt return true ich den code ändern zu:return super.onInterceptTouchEvent(event) dann bekomme ich aber eine Fehlermeldung: The method onInterceptTouchEvent(MotionEvent) is undefined for the type Activity

Kann mir bitte jemand helfen?

  • Die onInterceptTouchEvent() - Methode ist ein Mitglied der ViewGroup Klasse. Um es zu implementieren, müssen Sie eine Unterklasse eines ViewGroup verwendet werden, die in Ihrem layout.
  • hm, also wie kann ich die Unterklasse meiner viewgroup? - sorry, ich bin halt neu bei android
  • Danke, ich bin immer den Dreh
InformationsquelleAutor user2456977 | 2014-12-10
Schreibe einen Kommentar