2010-07-19 9 views
9

Ist es möglich, alle Berührungsereignisse in einer Aktivität zu erkennen und zu erfassen und dann dieses Ereignis an eine andere Ansicht zu übergeben?So erkennen Sie Berührungsereignisse in Android

Zum Beispiel:

Taste 1 und Taste 2. Wenn Taste 1 gedrückt wird, möchte ich, dass die Note erfassen/Ereignis klicken und übergeben Sie automatisch, dass das Berührungsereignis auf Taste 2, im Grunde mit einem Tastendruck/press erhalten Sie die Klicken Sie auf Generiert und derselbe Klick wird automatisch an die zweite Schaltfläche weitergegeben.

Antwort

18

nehmen diese API-Beschreibung zunächst einen Blick.


boolean android.app.Activity.dispatchTouchEvent (Motion ev)

public boolean dispatchTouchEvent (Motion ev) Seit: API Ebene 1 Called Touchscreen-Ereignisse zu verarbeiten. Sie können dies überschreiben, um alle Touchscreen-Ereignisse abzufangen, bevor sie an das Fenster gesendet werden. Achten Sie darauf, rufen Sie diese Implementierung für Touch Bildschirm Ereignisse, die normalerweise behandelt werden sollte.

Parameter ev Das Touchscreen-Ereignis.

Rückgabe boolean Gibt true zurück, wenn dieses Ereignis verbraucht wurde.

Wie Sie sehen können, können Sie alle Berührungsereignisse abfangen.

@Override 
public boolean dispatchTouchEvent(MotionEvent ev) { 
    // TODO Auto-generated method stub 
    super.dispatchTouchEvent(ev); 
    if(btn1.onTouchEvent(ev)){ 
     return btn2.onTouchEvent(ev); 
    }else{ 
     return false; 
    } 
} 

Diese Codes sind, was Sie suchen, denke ich.

+2

Dank fängt alle Touch-Ereignisse auf Aktivitätsebene –

3

Ich stelle mir vor, dass Sie das TouchEvent vom Drücken der Taste nehmen und einen Anruf an die andere Taste machen können, indem Sie das TouchEvent übergeben, aber ich bin nicht sicher, wie sicher das wäre. (Android kann auf dich bombardieren)

Eine sicherere Lösung wäre die Unterklasse Button, und benutze das Observer Design Pattern. Sie können alle Tasten registrieren, um auf Tastendrücke der anderen Tasten zu warten, und dann können Sie die TouchEvents sicher zwischen allen Tasten übergeben.

Wenn Sie mit dem Observer-Entwurfsmuster nicht vertraut sind, hier ist ein Link: http://en.wikipedia.org/wiki/Observer_pattern

Verwandte Themen