Android: 两个事件侦听器 - 如何调用两者

Android: two event listeners - how to call both

问题:
我有两个监听器,OnSingleTapListenerOnGraphicClick <-ArcGIS 相关的监听器。我的问题是我的一个听众拦截了另一个听众的用户输入。

目标:
看看我附上的截图;我希望在用户点击 "tap here" 图标时调用两个侦听器。目前,当用户点击 "tap here" 图标时 - OnGraphicClick 似乎会拦截用户事件并且不会调用 OnSingleTapListener

想了个办法手动调用OnSingleTapListener中的onSingleTap方法,但是需要float参数(用户点击的屏幕位置)和OnGraphicClick 采用 ArcGIS graphic 对象:两种方法的参数不相关。

需要考虑的问题

有用信息:
我正在为 Android.

使用 ArcGIS API

我有两个听众。一个 OnSingleTapListenerMapView 对象(包含所有地图内容的主视图)上设置,一个与 ArcGIS 相关的 onGraphicClickListener 也在 MapView 对象上设置。

MySingleTapListener mySingleTapListener = new MySingleTapListener(mMapView.getContext(), mMapView);
mMapView.setOnSingleTapListener(mySingleTapListener);
mMapViewHelper = new EnhancedMapViewHelper(mMapView, handler, this); //<--onGraphicClickListener is set here

示例屏幕显示

我无法让两个听众协同工作。不过,我确实找到了解决办法。

MapView class 包含一个将屏幕坐标转换为地图坐标的 toMapPoint 方法。以下是如何使用此方法:

  1. 只需在正在使用的 MapView 上设置一个 OnSingleTapListener
  2. OnSingleTapListeneronSingleTap 方法通过 toMapPoint 方法将每个用户事件转换为地图坐标。
  3. 如果地图坐标等同于 "tap here" 图标的地图坐标,则执行某些操作,即在这些屏幕坐标处显示弹出窗口。