У меня проблема с моей деятельностью. Это мой onCreate:
case NORMAL:
game = new Game(); // create new game
game.initializeGame(); // initialize new game
addSomeElements(result); // add elements to array due to user choice
game.getCurrentLevel().nextPair(); // next pair of elements from array
pictureGameLeft
.setImageResource(colorsPictures.get(game.getCurrentLevel().getCurrentPair().getImageLeft()));
pictureGameRight.setImageResource(colorsPictures.get(game.getCurrentLevel().getCurrentPair()
.getImageRight()));
break;
case NOTNORMAL:
game = new Game();
game.initializeGame();
addSomeElements(result);
game.getCurrentLevel().nextPair();
pictureGameLeft
.setImageResource(shapesPictures.get(game.getCurrentLevel().getCurrentPair().getImageLeft()));
pictureGameRight.setImageResource(shapesPictures.get(game.getCurrentLevel().getCurrentPair()
.getImageRight()));
break;
Это создание новой игры по выбору пользователя. Когда пользователь выберет NORMAL, к массиву «normal» будет добавлено несколько элементов. Если пользователь выбрал NOTNORMAL для массива "notnormal", будут добавлены другие элементы. После этого я получаю пару элементов от этого массива и показывает изображения.
Теперь это моя проблема. Когда я выбираю любой вариант, игра создается и показывает два изображения. Когда я блокирую свой телефон и после этого разблокирую, я получаю другие фотографии. Я думаю, что мой метод onCreate запускается снова. Я хочу сохранить первые изображения, и когда я блокирую и разблокирую свой телефон, я получаю те же фотографии. Как я могу это сделать. Я пытаюсь использовать это решение после onCreate:
@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putIntegerArrayList("table", (ArrayList<Integer>) normal);
super.onSaveInstanceState(savedInstanceState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
ArrayList<Integer> normal = savedInstanceState.getIntegerArrayList("table");
}
но это не работает.
edit1:
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
ArrayList<Integer> normal = savedInstanceState.getIntegerArrayList("table");
pictureGameLeft.setImageResource(normal.get(game.getCurrentLevel().getCurrentPair().getImageLeft()));
pictureGameRight.setImageResource(normal.get(game.getCurrentLevel().getCurrentPair().getImageRight()));