我是Android新手,我试图在我的应用上实现一项功能。我想要做的是让我的用户能够长按一个覆盖项目(它是一个公共汽车站)并将该标记(停止编号和地址)添加到他们的收藏夹选项卡。问题是......我如何监听并处理叠加项目上的长按(点击)?
目前我正在覆盖我的Overlay类中的onTap函数以处理常规点击,但我没有在文档中看到要覆盖的onLongTap函数...任何人都可以沿着正确的路径设置我吗?我错过了一些明显的东西吗?感谢您阅读本文
P.S。这是我的第一个问题: - )
答案 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(...)