2012-04-02 87 views
0

我是新手Android猴子,我試圖在我的應用上實現功能。我想要做的是讓我的用戶能夠長時間點擊覆蓋項目(這是一個公共汽車站),並將該標記(停止號碼和地址)添加到他們的收藏夾選項卡。問題是......我如何傾聽並處理覆蓋項目上的長按(輕擊)?如何在Google MapView中監聽重疊項的LongClick?

目前我@覆蓋Overlay類中的onTap函數來處理常規點擊,但我沒有看到在文檔中覆蓋onLongTap函數......任何人都可以設置我沿着正確的路徑嗎?我在這裏錯過了很明顯的東西嗎感謝您閱讀本文。

P.S.這是我的第一個SO問題:-)

回答

1

您可能想覆蓋onTouchEvent(MotionEvent, MapView)以進行更復雜的用戶交互。對於「長時間」點擊,您應該啓動某種計時器,以指示用戶在特定的Overlay項目上按了多長時間。一旦達到某個閾值 - 我相信「長時間」按下的默認延遲大約爲1500毫秒 - 然後執行相關代碼。

或者,你可以看看,包括mapview-overlay-manager項目,從它的讀取,應該提供您尋找什麼(然後一些):

OnOverlayGestureListener

簡化OnGestureListener。一個ManagedOverlayer使用自己內置的GestureDetector將觸發 的事件,如:

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

是的,我嘗試使用onTouchEvent,但需要付出很多努力。我剛剛開始在mapview-overlay-project中工作,它看起來很不錯。我認爲這是我更加交互式地圖的入場券。謝謝你指點我! – 2012-04-03 02:29:43

+0

它現在工作完美,多麼可愛的小小庫! – 2012-04-03 19:37:39

+0

很高興有幫助。快樂的編碼。 :) – 2012-04-03 20:16:58