0

我的应用程序中有 MapActivity 和工作地图视图。我面临的问题是我想点击地图上的任何位置,显示带有文本示例的对话框:

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;
}  

它向我显示了我的坐标 - 但每次我触摸地图时它都会这样做 - 我什至无法移动它。

4

1 回答 1

0

javadoc fordispatchTouchEvent(MotionEvent event)声明如下:

您可以覆盖它以在将所有触摸屏事件分派到窗口之前拦截它们。确保为应该正常处理的触摸屏事件调用此实现。

因此,您应该使用原始方法处理所有其他事件:

public boolean dispatchTouchEvent(MotionEvent event) {   
  if (event.getAction() == 1) {
    // do your stuff
    return true;
  }                      
  return super.dispatchTouchEvent(event);
}
于 2012-09-26T08:14:31.983 回答