2012-09-26 78 views
0

我在我的應用程序中使用MapView工作。我所面臨的問題是,我想點擊地圖上的任意位置,顯示出與文本示例的對話框:如何在android中的Google地圖視圖中標記點按位置?

do you want to mark this location? 

如果是的話,它會提取座標,並保存在某個地方它(不要緊現在在哪裏),

我該怎麼做?我試圖使用dispatchTouchEvent方法,但我失敗了。

@Override 
public boolean dispatchTouchEvent(MotionEvent event) 
{ 
if (event.getAction() == 1) {     
    GeoPoint p = mapView.getProjection().fromPixels(
     (int) event.getX(), 
     (int) event.getY()); 
     // send the intent from here to your next activity with the GeoPoint coords. 
     Toast.makeText(getBaseContext(), 
      p.getLatitudeE6()/1E6 + "," + 
      p.getLongitudeE6() /1E6 , 
      Toast.LENGTH_SHORT).show(); 
}      
return false; 
} 

它顯示了我,我的座標 - 但它每次做的時候我只摸地圖 - 我甚至無法移動。

+0

讓我們瞭解您嘗試和描述它是如何失敗。 –

+0

@MattHandy你去了:] – pawel

回答

0

的Javadoc dispatchTouchEvent(MotionEvent event)規定如下:

您可以覆蓋此攔截所有觸摸屏事件,他們被分派到了窗口前。請務必將此實現稱爲應該正常處理的觸摸屏事件。

所以,你應該處理所有其他事件與原有方法:

public boolean dispatchTouchEvent(MotionEvent event) { 
    if (event.getAction() == 1) { 
    // do your stuff 
    return true; 
    }      
    return super.dispatchTouchEvent(event); 
} 
+0

謝謝,先生:]是否有可能通過任何其他方法處理它?我聽說並嘗試過使用覆蓋類的Tap(),但沒有成功。恕我直言dispatchtouchevent()不是最好的方式去 - 我是對嗎? – pawel

+0

據我所知,只有當您點擊疊加層上的項目時,纔會觸發'onTap'方法。但Overlay類中還有一個方法'onTouchEvent'。也許這是你的一個選擇。 –

相關問題