Способ, которым я достиг этого, - установить значение int в ваших SharedPreferences. Затем нажмите эту кнопку, получите значение и включите или выключите спутник соответственно.
private static final int OVERLAY_STREET = 0;
private static final int OVERLAY_SAT = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
int currentOverlayMode = prefs.getInt("map_viewmode", 0);
mOverlayModeBtn = (Button)findViewById(R.id.googlemaps_overlay_btn);
mOverlayModeBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (currentOverlayMode < 1)
currentOverlayMode++;
else
currentOverlayMode = 0;
switch (currentOverlayMode) {
case OVERLAY_STREET:
mMaps.setSatellite(false);
mMaps.setStreetView(true);
prefsEditor.putInt("map_viewmode", OVERLAY_STREET);
break;
case OVERLAY_SAT:
mMaps.setStreetView(false);
mMaps.setSatellite(true);
prefsEditor.putInt("map_viewmode", OVERLAY_SAT);
break;
}
prefsEditor.commit();
mMaps.invalidate();
}
});
}
Возможно, вы захотите немного почистить, но у меня это работает.