Я пытаюсь сохранить тип карты, которую пользователь выбрал в меню, чтобы тип карты оставался, даже если устройство будет повернуто или действие будет приостановлено на несколько мгновений. Это то, что я сделал, но он, похоже, не работает. Пожалуйста, скажите мне, что я делаю неправильно?onSaveInstanceState не работает
private int mapTypeSelected;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null){
mapTypeSelected = GoogleMap.MAP_TYPE_NORMAL;
} else {
mapTypeSelected = savedInstanceState.getInt("the_map_type",GoogleMap.MAP_TYPE_NORMAL);
}
}
Мое главное меню имеет больше вариантов, но я добавил здесь только соответствующие них для типа карты:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.change_map_type:
Toast.makeText(getApplicationContext(), "Change map type", Toast.LENGTH_LONG).show();
return true;
case R.id.map_type_normal:
mapTypeSelected = GoogleMap.MAP_TYPE_NORMAL;
mMap.setMapType(mapTypeSelected);
return true;
case R.id.map_type_satellite:
mapTypeSelected = GoogleMap.MAP_TYPE_SATELLITE;
mMap.setMapType(mapTypeSelected);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Затем в конце моей деятельности я добавил это два:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("the_map_type", mapTypeSelected);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
savedInstanceState.get("the_map_type");
}
Я уверен, что это что-то глупое, что я поступаю неправильно, но я не могу понять, что. Ошибок нет, и все работает нормально, только при ротации тип карты всегда меняется. Заранее благодарим за любую помощь!
Это не причина. Это была ошибка, которую я совершил. Теперь это исправлено. –
Вы не задаете тип карты вне 'onOptionsItemSelected' ... вы можете сделать это сразу после получения экземпляра' mMap' – Selvin
Можете ли вы быть более откровенным? –