2011-01-02 18 views
0

私はボタンをクリックしてオーバーレイをオンまたはオフに切り替えることを試みています。Android MapViewオーバーレイを切り替える

List<Overlay> savedOverlays; 
Button testButton; 
@Override 
public void onCreate(Bundle savedInstanceState) { 


super.onCreate(savedInstanceState); 

setContentView(R.layout.main); 
MapView mapView = (MapView) findViewById(R.id.mapview); 
testButton = (Button) findViewById(R.id.TestButton); 
testButton.setOnClickListener(testButtonClickListener); 
mapView.setBuiltInZoomControls(true); 
setOverlays(mapView); 
} 
private void setOverlays(MapView mapView) { 
    List<Overlay> mapOverlays = getOverlays(mapView); 
Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker); 
HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable, this); 
GeoPoint point = new GeoPoint(19240000,-99120000); 
OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!", "I'm in Mexico City!"); 
GeoPoint point2 = new GeoPoint(35410000, 139460000); 
OverlayItem overlayitem2 = new OverlayItem(point2, "Sekai, konichiwa!", "I'm in Japan!"); 
itemizedoverlay.addOverlay(overlayitem); 
itemizedoverlay.addOverlay(overlayitem2); 
mapOverlays.add(itemizedoverlay); 

} 

private List<Overlay> getOverlays(MapView mapView) { 
    List<Overlay> mapOverlays = mapView.getOverlays(); 
    return mapOverlays; 
} 

private void toggleOverlays(MapView mapView){ 
    List<Overlay> mapOverlays = mapView.getOverlays(); 
    if (mapOverlays.isEmpty()) 
    { 
     setOverlays(mapView); 
    } 
    else 
    { 
     mapOverlays.removeAll(getOverlays(mapView)); 
    } 
} 

private OnClickListener testButtonClickListener = new OnClickListener() { 
    public void onClick(View V){ 
     toggleOverlays((MapView) findViewById(R.id.mapview)); 
    } 
}; 

トグル・オフ・パートは機能しますが、戻したくないようですが、何か不足していますか?

答えて

3

私が考えることができるのは、現時点では、すべてのオーバーレイを追加した後にmapView.invalidate()を呼び出して強制的に再描画することです。

関連する問題