2016-05-25 23 views
1

问题:
我有两个听众,OnSingleTapListenerOnGraphicClick < -ArcGIS相关的侦听器。我的问题是,我的一位听众拦截了用户输入的内容。安卓:两个事件侦听器 - 如何调用都

目标:
看看我附上的截图;当用户点击“点击此处”图标时,我希望两个听众都能被调用。目前,当用户点击“点击此处”图标时 - OnGraphicClick似乎拦截用户事件,并且OnSingleTapListener未被调用。

我试图想办法手动调用onSingleTap方法在OnSingleTapListener,但它需要float参数(的用户点击其中屏幕的位置)和OnGraphicClick需要一个ArcGIS graphic对象:参数为两个相应的方法没有关系。

要思考的问题

  • 有没有办法模仿的做类似的东西 的performClick方法的用户事件将在用户敲击的位置执行单一的水龙头 的“点击这里“图标?
  • 我是否可以在地图视图顶部放置一个隐形视图,并将OnSingleTapListener置于该不可见视图上?如果我这样做了,那么用户的点击事件就会通过不可见视图来与位于地图视图上的onGraphicClick侦听器交互?

有用的信息:
我使用ArcGIS API为Android工作。

我有两个听众。一个OnSingleTapListener设置在MapView对象(包含所有地图东西的主视图)和一个也设置在MapView对象上的与ArcGIS相关的onGraphicClickListener

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

屏幕显示示例

enter image description here

回答

1

我没能同时获得听众协同工作。但是,我确实找到了解决方案。

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

  1. 只需在使用的MapView上设置OnSingleTapListener即可。
  2. 已通过OnSingleTapListeneronSingleTap方法将每个用户事件通过toMapPoint方法转换为地图坐标。
  3. 如果地图坐标相当于“点击这里”图标的地图坐标,则执行一些操作即在这些坐标屏幕上显示一个弹出窗口。