0
我的活动有问题。这是我的创作:Android和生命周期
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到arraylist“normal”时会添加一些元素。如果用户选择NOTNORMAL到arraylist“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()));
仍然是同样的问题。 onCreate创建新游戏,并获得新照片。 – edi233 2012-03-29 08:31:37
你做了什么改变......? – ngesh 2012-03-29 08:32:23