我的MapActivity在我的应用程序中使用了mapview。我遇到的问题是我想点击地图上的任何位置,用文本示例显示对话框:
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)
dispatchTouchEvent(MotionEvent event)
的javadoc声明如下:
您可以覆盖它以在将所有触摸屏事件分派到窗口之前拦截它们。请务必将此实现称为应该正常处理的触摸屏事件。
所以你应该用原始方法处理所有其他事件:
public boolean dispatchTouchEvent(MotionEvent event) {
if (event.getAction() == 1) {
// do your stuff
return true;
}
return super.dispatchTouchEvent(event);
}