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

问题描述:

当地图上有最小一个点时,onTap()方法工作,但当我从地图中删除所有点时,onTap()方法不起作用,我无法添加点在地图上。Android onTap mapView方法在删除所有点后不起作用

请帮助...

代码:

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



} 

和Ontap方法添加点如果geoPointList点的数量少于两个。

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