我有一个大问题。我有一个活动,我有两个imageViews。在onCreate我有列表图片,我有10张图片。每当我开始这个活动时,两个imageView都从List中获取随机图片并显示它们。例如:当我开始活动时,我可以看到汽车和铅笔,当我再次开始这项活动时,我会得到大象和书。 现在这是我的问题。当我开始活动并阻止我的手机,然后解锁后我得到其他图片。我认为再次调用onCreate。我创建了
@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
}
public void onRestoreInstanceState(Bundle savedInstanceState) {
if (savedInstanceState != null) {
pictureGameLeft.setImageResource(shapesPictures.get(game.getCurrentLevel().getCurrentPair().getImageLeft()));
pictureGameRight.setImageResource(shapesPictures.get(game.getCurrentLevel().getCurrentPair().getImageRight()));
}
}
pictureGameLeft和Right是最后显示的图像。 我在onCreate方法之后写它们。 如何保存上次看到的图片,如果我锁定和解锁手机,我会得到相同的图片。也许onPause或onStop需要调用?
编辑: 现在:
if (savedInstanceState == null) {
game = new Game();
game.initGame();
addElements(result);
game.getCurrentLevel().nextPair();
pictureGameLeft.setImageResource(shapesPictures.get(game.getCurrentLevel().getCurrentPair()
.getImageLeft()));
pictureGameRight.setImageResource(shapesPictures.get(game.getCurrentLevel().getCurrentPair()
.getImageRight()));
mRedrawHandler.sleep(1000);
}
else {
pictureGameLeft.setImageResource(shapesPictures.get(game.getCurrentLevel().getCurrentPair(
.getImageLeft()));
pictureGameRight.setImageResource(shapesPictures.get(game.getCurrentLevel().getCurrentPair()
.getImageRight()));
}
但是我得到了NullPointerException。
答案 0 :(得分:0)
在做出决定的那一刻,我会将当前选择的图片保存到首选项中。 比你没有必须摆弄实时循环方法。
决定何时从偏好中选择或创建新的(随机)选择很容易。只需检查是否
savedInstanceState
的
public void onCreate (Bundle savedInstanceState)
为空。如果是这样,那是第一次通话。后续重新打开具有非空值