我有关于屏幕旋转的问题。我知道我必须使用方法“onSaveInstanceState(Bundle outState)”但我没有理解它是如何工作的。我的应用程序必须将“标记”添加到Google Map。
class AddMarker extends Fragment{
private static final String KEY = "marker";
private ArrayList<LatLng> mData;
private GoogleMap mMap;
private MapView mMapView;
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putParcelableArrayList(KEY, mData);
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View v = inflater.inflate(R.layout.map, container, false);
mMapView = (MapView) v.findViewById(R.id.mapview);
mMapView.onCreate(savedInstanceState);
mMap = mMapView.getMap();
mMap.setMyLocationEnabled(true);
if((savedInstanceState != null)
&& (savedInstanceState.getParcelableArrayList(KEY) != null)){
mData = savedInstanceState.getParcelableArrayList(KEY);
// What should I do here ????
// call drawMarker(mData) ???
}
else
drawMarker(mData);
return v;
}
} }