Android地图:保存地图的状态
我有一个位置按钮,它指向地图,用户将在地图上选择区域,然后按保存按钮,显示toast并指向它开始的活动,现在我想方便用户再次按位置按钮,它将显示地图和已选择的区域,现在,如果我在onPause()中使用putfloat()使用共享优先级来保存纬度和经度,并在onResume()中访问它们,我需要更新相机,为此我需要LatLng对象,对吗?现在的问题是,我有使用共享优先权的纬度和经度,更新相机需要LatLng之类的东西,我要做的就是试试这个Android地图:保存地图的状态,android,google-maps,geolocation,sharedpreferences,android-lifecycle,Android,Google Maps,Geolocation,Sharedpreferences,Android Lifecycle,我有一个位置按钮,它指向地图,用户将在地图上选择区域,然后按保存按钮,显示toast并指向它开始的活动,现在我想方便用户再次按位置按钮,它将显示地图和已选择的区域,现在,如果我在onPause()中使用putfloat()使用共享优先级来保存纬度和经度,并在onResume()中访问它们,我需要更新相机,为此我需要LatLng对象,对吗?现在的问题是,我有使用共享优先权的纬度和经度,更新相机需要LatLng之类的东西,我要做的就是试试这个 @Override protected
@Override
protected void onResume() {
super.onResume();
SharedPreferences pref = context.getSharedPreferences("saved_area", Activity.MODE_PRIVATE);
float lat = pref.getFloat("lat", 0);
float lng = pref.getFloat("lng", 0);
float zoom = pref.getFloat("zoom", 0);
map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), zoom));
}
@Override
protected void onPause() {
float zoom = map.getCameraPosition().zoom;
float lat = (float) map.getCameraPosition().target.latitude;
float lng = (float) map.getCameraPosition().target.longitude;
SharedPreferences pref = context.getSharedPreferences("saved_area", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putFloat("lat", lat);
editor.putFloat("lng", lng);
editor.putFloat("zoom", zoom);
editor.commit();
super.onPause();
}
onResume中的代码没有运行,当im包含共享首选项时,它停止运行,当我注释掉它运行的代码时,