Android:两个事件监听器 - 如何同时调用

时间:2016-05-25 14:06:06

标签: android events listener onclicklistener arcgis

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

目标:
看一下我附带的截图;我希望当用户点击"点击此处时,可以呼叫两个听众。图标。目前,当用户点击"点击此处"图标 - OnGraphicClick似乎拦截了用户事件,并且未调用OnSingleTapListener

我试图想办法手动调用onSingleTap中的OnSingleTapListener方法,但需要float个参数(用户点击的屏幕位置)和{{1采用ArcGIS OnGraphicClick对象:两个相应方法的参数无关。

需要考虑的问题

  • 有没有办法通过做类似的事情来模仿用户事件 执行单击的graphic方法 在用户点击"点击此处的位置"图标?
  • 我是否可以在地图视图顶部放置一个不可见的视图,并将performClick放在该隐形视图上?如果我这样做,用户的点击事件会通过不可见的视图传递给地图视图中的OnSingleTapListener侦听器吗?

实用信息
我正在使用ArcGIS API for Android。

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

MapView

示例屏幕显示

enter image description here

1 个答案:

答案 0 :(得分:1)

我无法让两位听众同时工作。但是,我确实找到了解决方案。

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

  1. 只需在正在使用的OnSingleTapListener上设置MapView
  2. onSingleTap OnSingleTapListener方法将每个用户事件转换为通过toMapPoint方法映射坐标。
  3. 如果地图坐标相当于&#34的地图坐标,请点击此处"图标,然后做一些事情,即在那些屏幕坐标上显示弹出窗口。