savedInstanceState.putInt не записывает значение переменной

Рейтинг: 1Ответов: 1Опубликовано: 25.04.2015

Добрый вечер! Только начинаю писать под android, надеюсь поможете новичку: Проблема в следующем - не могу понять, почему в методе onSaveInstanceState, когда я пытаюсь записать в savedInstanceState значение переменной (int mCurrentIndex), значение теряется. За изменением значения переменной смотрел через Тосты, поэтому выглядит наверное немного коряво, но тем не менее. Вот код:

private final static String KEY_INDEX = "index";
private int mCurrentIndex = 0;
...
@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
    super.onSaveInstanceState(savedInstanceState);
    String beforeRec = Integer.toString(mCurrentIndex);
    Toast.makeText(QuizActivity.this, beforeRec, Toast.LENGTH_SHORT).show(); // этот тост отображает актуальное значение переменной mCurrentIndex, которое меняется в течении работы программы
    savedInstanceState.putInt(KEY_INDEX, mCurrentIndex);
    String afterRec = Integer.toString(savedInstanceState.getInt("KEY_INDEX"));
    Toast.makeText(QuizActivity.this, afterRec, Toast.LENGTH_SHORT).show(); // А этот тост стабильно отображает 0 

}

Надеюсь понятно, что я имею ввиду) Второй день пытаюсь разобраться, надеюсь кто нить сможет разъяснить, в чем же тут дело. Спасибо!

Ответы

▲ 1Принят

Всё просто. Изначально вы помещаете переменную с ключом, хранящимся в переменной KEY_INDEX = 'index", а потом пытаетесь получить значение по другому ключу - "KEY_INDEX".

Проще говоря, уберите кавычки тут

String afterRec = Integer.toString(savedInstanceState.getInt("KEY_INDEX"));