2016-05-25 21 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. 如果地圖座標相當於「點擊這裏」圖標的地圖座標,則執行一些操作即在這些座標屏幕上顯示一個彈出窗口。