我如何在Google MapView中的叠加项目上收听LongClick?

时间:2012-04-02 23:32:40

标签: java android google-maps android-mapview

我是Android新手,我试图在我的应用上实现一项功能。我想要做的是让我的用户能够长按一个覆盖项目(它是一个公共汽车站)并将该标记(停止编号和地址)添加到他们的收藏夹选项卡。问题是......我如何监听并处理叠加项目上的长按(点击)?

目前我正在覆盖我的Overlay类中的onTap函数以处理常规点击,但我没有在文档中看到要覆盖的onLongTap函数...任何人都可以沿着正确的路径设置我吗?我错过了一些明显的东西吗?感谢您阅读本文

P.S。这是我的第一个问题: - )

1 个答案:

答案 0 :(得分:1)

您可能希望覆盖onTouchEvent(MotionEvent, MapView)以进行更复杂的用户互动。对于“长”点击,您应该启动某种计时器,该计时器将指示用户按下特定叠加项目的时间。一旦达到某个阈值 - 我相信'长'按下的默认延迟大约为1500毫秒 - 然后您执行相关代码。

或者,你可以看一下包含mapview-overlay-manager项目,从中读取它应该提供你想要的东西(然后是一些):

  

<强> OnOverlayGestureListener

     

Simplified OnGestureListener。 ManagedOverlayer使用自己的内置GestureDetector来触发   事件如:

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