使用onTap()时出现问题

时间:2011-06-02 05:00:03

标签: android android-mapview itemizedoverlay

在我的应用中,要求是当我触摸地图中的任何位置时,我必须创建一个新的叠加层并使用标记显示它,如果我点击任何标记的位置,我必须在其中显示其详细信息一个气球。

在ItemizedOverlay类中编写的onTap()和onTouchEvent()如下所示:

@Override
protected boolean onTap(int index) {
    if(!super.onTap(index)) {
        MyOverlayItem<OverlayItem> overlayItem = new MyOverlayItem<OverlayItem>(
            createItem(index).getPoint(), createItem(index).getTitle(), 
            createItem(index).getSnippet(), mapView, activity);
        overlayItem.onTap(createItem(index).getPoint(), mapView);       
    }
    return true;
}

@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView) {
    GeoPoint point = mapView.getProjection().fromPixels(
            (int) event.getX(),
            (int) event.getY());
    addPoint(point);
    return true;
}

MyOverlayItem中的onTap()如下:

public boolean onTap(GeoPoint point, MapView mapView) {
    createBalloon(); //creates the balloon view.
    return true;
}

我的问题是:

如果我要添加这个onTouchEvent(),则不会调用onTap()。总是一个新的点被添加。

我如何才能达到我的要求?我对这两种方法感到困惑。任何人都可以帮助我。提前谢谢。

0 个答案:

没有答案