mirror of
https://github.com/googlemaps/android-samples.git
synced 2025-12-08 18:02:20 +00:00
Demo sub-bundle pattern for reliable instance state.
Change-Id: Id01e8aa28466572000e154c279887441e04254bf
This commit is contained in:
parent
5da6818149
commit
263f35e10b
@ -33,17 +33,39 @@ public class RawMapViewDemoActivity extends AppCompatActivity implements OnMapRe
|
||||
|
||||
private MapView mMapView;
|
||||
|
||||
private static final String MAPVIEW_BUNDLE_KEY = "MapViewBundleKey";
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.raw_mapview_demo);
|
||||
|
||||
// *** IMPORTANT ***
|
||||
// MapView requires that the Bundle you pass contain _ONLY_ MapView SDK
|
||||
// objects or sub-Bundles.
|
||||
Bundle mapViewBundle = null;
|
||||
if (savedInstanceState != null) {
|
||||
mapViewBundle = savedInstanceState.getBundle(MAPVIEW_BUNDLE_KEY);
|
||||
}
|
||||
mMapView = (MapView) findViewById(R.id.map);
|
||||
mMapView.onCreate(savedInstanceState);
|
||||
mMapView.onCreate(mapViewBundle);
|
||||
|
||||
mMapView.getMapAsync(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
|
||||
Bundle mapViewBundle = outState.getBundle(MAPVIEW_BUNDLE_KEY);
|
||||
if (mapViewBundle == null) {
|
||||
mapViewBundle = new Bundle();
|
||||
outState.putBundle(MAPVIEW_BUNDLE_KEY, mapViewBundle);
|
||||
}
|
||||
|
||||
mMapView.onSaveInstanceState(mapViewBundle);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
@ -85,9 +107,4 @@ public class RawMapViewDemoActivity extends AppCompatActivity implements OnMapRe
|
||||
mMapView.onLowMemory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
mMapView.onSaveInstanceState(outState);
|
||||
}
|
||||
}
|
||||
|
||||
@ -34,6 +34,8 @@ public class StreetViewPanoramaViewDemoActivity extends AppCompatActivity {
|
||||
|
||||
private StreetViewPanoramaView mStreetViewPanoramaView;
|
||||
|
||||
private static final String STREETVIEW_BUNDLE_KEY = "StreetViewBundleKey";
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@ -47,7 +49,14 @@ public class StreetViewPanoramaViewDemoActivity extends AppCompatActivity {
|
||||
addContentView(mStreetViewPanoramaView,
|
||||
new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
|
||||
|
||||
mStreetViewPanoramaView.onCreate(savedInstanceState);
|
||||
// *** IMPORTANT ***
|
||||
// StreetViewPanoramaView requires that the Bundle you pass contain _ONLY_
|
||||
// StreetViewPanoramaView SDK objects or sub-Bundles.
|
||||
Bundle mStreetViewBundle = null;
|
||||
if (savedInstanceState != null) {
|
||||
mStreetViewBundle = savedInstanceState.getBundle(STREETVIEW_BUNDLE_KEY);
|
||||
}
|
||||
mStreetViewPanoramaView.onCreate(mStreetViewBundle);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -71,6 +80,13 @@ public class StreetViewPanoramaViewDemoActivity extends AppCompatActivity {
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
mStreetViewPanoramaView.onSaveInstanceState(outState);
|
||||
|
||||
Bundle mStreetViewBundle = outState.getBundle(STREETVIEW_BUNDLE_KEY);
|
||||
if (mStreetViewBundle == null) {
|
||||
mStreetViewBundle = new Bundle();
|
||||
outState.putBundle(STREETVIEW_BUNDLE_KEY, mStreetViewBundle);
|
||||
}
|
||||
|
||||
mStreetViewPanoramaView.onSaveInstanceState(mStreetViewBundle);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user