删除所有点后Android onTap mapView方法不起作用

删除所有点后Android onTap mapView方法不起作用,android,itemizedoverlay,Android,Itemizedoverlay,当地图上至少有一个点时,onTap()方法工作,但当我从地图上删除所有点时,onTap()方法不工作,我无法在地图上添加点 请帮忙 代码: 私有类CustomItemizedOverlay2扩展了ItemizedOverlay{ 私有ArrayList mapOverlays=新ArrayList(); 私人语境; 专用地质点中心=空; public CustomItemizedOverlay2(可绘制的默认标记){ super(boundCenterBottom(defaultMarker))

当地图上至少有一个点时,onTap()方法工作,但当我从地图上删除所有点时,onTap()方法不工作,我无法在地图上添加点

请帮忙

代码:

私有类CustomItemizedOverlay2扩展了ItemizedOverlay{
私有ArrayList mapOverlays=新ArrayList();
私人语境;
专用地质点中心=空;
public CustomItemizedOverlay2(可绘制的默认标记){
super(boundCenterBottom(defaultMarker));
}
public CustomItemizedOverlay2(可绘制的默认标记、地质点){
这(默认标记);
OverlayItem OverlayItem=新的OverlayItem(点“,”);
mapOverlays.add(overlayItem);
填充();
}
public CustomItemizedOverlay2(可绘制的默认标记、上下文、,
字符串结果){
这(默认标记);
this.context=上下文;
对于(int i=0;i

如果geoPointList中的点数少于两个,onTap方法将添加点。

最终解决,因为我已经实现了自定义MapOverlay,并在其中使用onTap方法,而不是在CustomItemizedOverlay2中使用

    private class CustomItemizedOverlay2 extends ItemizedOverlay<OverlayItem> {

    private ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem>();
    private Context context;
    private GeoPoint center = null;

    public CustomItemizedOverlay2(Drawable defaultMarker) {
        super(boundCenterBottom(defaultMarker));
    }

    public CustomItemizedOverlay2(Drawable defaultMarker, GeoPoint point) {
        this(defaultMarker);
        OverlayItem overlayItem = new OverlayItem(point, "", "");
        mapOverlays.add(overlayItem);
        populate();
    }

    public CustomItemizedOverlay2(Drawable defaultMarker, Context context,
            String result) {
        this(defaultMarker);
        this.context = context;

        for (int i = 0; i < geoPointList.size(); i++) {
            OverlayItem overlayItem = new OverlayItem(geoPointList.get(i),
                    "abc", "point" + i);
            mapOverlays.add(overlayItem);
        }
        populate();
    }

    @Override
    protected OverlayItem createItem(int i) {
        return mapOverlays.get(i);
    }

    @Override
    public int size() {
        return mapOverlays.size();
    }

    @Override
    public boolean onTap(GeoPoint point, MapView mapView) {

        int size = geoPointList.size();
        if (size < 2) {
            geoPointList.add(point);

            count++;
            int lat = point.getLatitudeE6();
            int longi = point.getLongitudeE6();
            Drawable image = gMap.this.getResources().getDrawable(
                    R.drawable.pushpin);

            CustomItemizedOverlay2 addPointItemizedOverlay = new CustomItemizedOverlay2(
                    image, point);
            mapView.getOverlays().add(addPointItemizedOverlay);


            mapView.invalidate();
        }
        return super.onTap(point, mapView);
    }



}