Android 如何在一张地图中仅显示一个气球?

Android 如何在一张地图中仅显示一个气球?,android,android-mapview,itemizedoverlay,Android,Android Mapview,Itemizedoverlay,我有一个地图视图,其中包含了大量的位置大头针,每个大头针可以显示气球在它的上方。但当我按下另一个针脚时,旧的那个气球不是自动关闭的,所以每次我都想在其他气球显示之前清除气球 (I)项目化覆盖) 请帮忙,谢谢。来自 /** *将此覆盖的引出序号视图的可见性设置为“消失”。 */ 私有void隐藏分配(){ 如果(BallooView!=null){ BallooView.setVisibility(View.GONE); } } /** *隐藏任何其他BalloodItemIzedOverlay实

我有一个地图视图,其中包含了大量的位置大头针,每个大头针可以显示气球在它的上方。但当我按下另一个针脚时,旧的那个气球不是自动关闭的,所以每次我都想在其他气球显示之前清除气球

(I)项目化覆盖)

请帮忙,谢谢。

来自

/**
*将此覆盖的引出序号视图的可见性设置为“消失”。
*/
私有void隐藏分配(){
如果(BallooView!=null){
BallooView.setVisibility(View.GONE);
}
}
/**
*隐藏任何其他BalloodItemIzedOverlay实例的引出序号视图
*这可能会出现在地图视图上。
* 
*@param overlays-地图视图上的覆盖列表(包括此)。
*/
专用空心隐藏其他引出序号(列表覆盖){
用于(覆盖:覆盖){
if(覆盖BalloodItemIzedOverlay和覆盖的覆盖实例!=此){
((BallodeItemizeOverlay)覆盖);
}
}
}
来自

/**
*将此覆盖的引出序号视图的可见性设置为“消失”。
*/
私有void隐藏分配(){
如果(BallooView!=null){
BallooView.setVisibility(View.GONE);
}
}
/**
*隐藏任何其他BalloodItemIzedOverlay实例的引出序号视图
*这可能会出现在地图视图上。
* 
*@param overlays-地图视图上的覆盖列表(包括此)。
*/
专用空心隐藏其他引出序号(列表覆盖){
用于(覆盖:覆盖){
if(覆盖BalloodItemIzedOverlay和覆盖的覆盖实例!=此){
((BallodeItemizeOverlay)覆盖);
}
}
}

也许太晚了,但我想我今天也面临着同样的问题

使用
mapView.getOverlays().clear()
删除项目时,将删除所有项目。 但是,如果您查看
BalloodItemIzedOverlay.java
中的方法“CreateandDisplayBalloodOverlay”,您将看到行
mapView.addView(BalloodView,params)
,因此
mapView
将气球的引用保留为子对象。这就是为什么你的别针不见了,但气球还在


快速修复方法是在删除项目后,使用方法e
mapView.removeViewAt()
删除所有
BallooOverlayView
的实例。也取决于您的实现,您可能需要保留当前显示的气球。

可能太晚了,但我想我今天也面临同样的问题

使用
mapView.getOverlays().clear()
删除项目时,将删除所有项目。 但是,如果您查看
BalloodItemIzedOverlay.java
中的方法“CreateandDisplayBalloodOverlay”,您将看到行
mapView.addView(BalloodView,params)
,因此
mapView
将气球的引用保留为子对象。这就是为什么你的别针不见了,但气球还在


快速修复方法是在删除项目后,使用方法e
mapView.removeViewAt()
删除所有
BallooOverlayView
的实例。根据您的实现,您可能需要保留当前显示的气球。

以下代码将从地图中删除所有气球覆盖项:

  MapView.removeViews(0, MapView.getChildCount());

它相当于MapView.getOverlays().clear()(用于常规覆盖),上面的代码适用于包含气球覆盖的地图。

以下代码将从地图中删除所有气球覆盖项:

  MapView.removeViews(0, MapView.getChildCount());

它相当于MapView.getOverlays().clear()(用于常规覆盖),上面的代码适用于包含气球覆盖的地图。

是的,我有此分区代码,它也可以工作,但当我按pin1(show Ballod1)然后转到其他活动,然后返回地图页面时,它出现了一些问题,Balloo1仍然显示,尽管我按了pin2键(它将显示Balloo1和Balloo2),因此我想在转到其他活动时关闭Balloo1,请提供帮助。如果要删除其他引出序号,请调用
mapOverlays.clear();mapView.invalidate()。我必须查看您的代码,特别是onResume()中的操作。您必须在那里隐藏/删除Balloo1覆盖项。我尝试mMapView.getOverlays().clear();mMapView.invalidate();在onResume中,结果是pin消失了,但balloon仍然显示我应该做什么?同样,我不能不看代码就说。您可能必须
mapView.getOverlays().remove(i)
,然后调用invalidate.yes我也有此分区代码,它可以工作,但当我按pin1(显示Ballod1)然后转到其他活动,然后返回地图页时,Ballod1出现了一些问题,尽管我按了pin2(它将显示Ballod1和Ballod2),Ballod1仍然显示因此,当我转到其他活动时,我想关闭Ballod1,请提供帮助。如果要删除其他引出序号,请调用
mapOverlays.clear();mapView.invalidate()。我必须查看您的代码,特别是onResume()中的操作。您必须在那里隐藏/删除Balloo1覆盖项。我尝试mMapView.getOverlays().clear();mMapView.invalidate();在onResume中,结果是pin消失了,但balloon仍然显示我应该做什么?同样,我不能不看代码就说。您可能必须
mapView.getOverlays().remove(i)
,然后调用invalidate。