2012-04-02 11 views
0

Ich bin ein Anfänger Android-Affe und ich habe einen Haken getroffen, um eine Funktion in meiner App zu implementieren. Ich möchte, dass meine Benutzer auf einen Overlay-Eintrag (es ist eine Bushaltestelle) klicken und diesen Marker (Stoppnummer und Adresse) zu ihrem Favoriten-Tab hinzufügen können. Das Problem ist ... wie höre ich auf einen Overlay-Eintrag?Wie würde ich für ein LongClick auf einem Overlay-Element in einem Google MapView hören?

Momentan übertrage ich die onTap-Funktion in meiner Overlay-Klasse, um reguläre Taps zu behandeln, aber ich sehe keine onLongTap-Funktion in der Dokumentation zu überschreiben ... Kann mir jemand den richtigen Weg einschlagen? Fehle ich etwas Offensichtliches hier? Danke für das Lesen dieser

P.S. Das ist meine erste SO-Frage :-)

Antwort

1

Sie möchten wahrscheinlich onTouchEvent(MotionEvent, MapView) für komplexere Benutzerinteraktionen überschreiben. Zum "langen" Tippen sollten Sie einen Timer starten, der angibt, wie lange der Benutzer auf ein bestimmtes Overlay-Element gedrückt hat. Sobald ein bestimmter Schwellenwert erreicht ist - ich glaube, dass die Standardverzögerung für einen 'langen' Druck ungefähr 1500 ms beträgt - führen Sie dann den entsprechenden Code aus.

Alternativ können Sie einen Blick das mapview-overlay-manager Projekt einschließlich, die, von der es liest, sollte genau das bieten, was Sie suchen (und dann einige):

OnOverlayGestureListener

Vereinfachter OnGestureListener. A ManagedOverlayer verwendet seine eigenen build-in GestureDetector die Ereignisse wie feuert:

  • onSingleTap (Motion, ManagedOverlay, GeoPoint, OverlayItem)
  • onDoubleTap (Motion, ManagedOverlay, GeoPoint, OverlayItem)
  • onLongPress (Motion , ManagedOverlay, GeoPoint, OverlayItem)
  • onZoom (ZoomEvent, ManagedOverlay) onScrolled (...)
+0

Ja, ich habe versucht, mit onTouchEvent zu arbeiten, aber es war eine Menge zu übernehmen. Ich habe gerade angefangen, im mapview-overlay-Projekt zu arbeiten und es sieht ziemlich gut aus. Ich denke, es ist meine Eintrittskarte für eine interaktive Karte. Danke, dass du mich darauf hingewiesen hast! –

+0

Es funktioniert jetzt perfekt, was für eine süße kleine Lib! –

+0

Ich bin froh, dass ich geholfen habe. Glückliche Kodierung. :) –

Verwandte Themen