2012-03-30 1 views
1

У меня большая проблема. У меня есть активность, где у меня два образа. В onCreate у меня есть список фотографий, где у меня 10 фотографий. Каждый раз, когда я запускаю эту операцию, оба изображения получают случайное изображение из списка и показывают их. Например: Когда я начинаю деятельность, я вижу автомобиль и карандаш, и когда я снова начинаю эту деятельность, я получаю слон и книгу. Теперь это моя проблема. Когда я начинаю деятельность и блокирую свой телефон, и после этой разблокировки я получаю другие фотографии. Я думаю, что onCreate вызывается снова. Я создаюAndroid и onSaveInstance and Restore

@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 and Right - это последние изображения, которые отображаются. Я пишу их после метода WithCreate. Как я могу сохранить последнее увиденное изображение, что если я заблокирую и разблокирую телефон, то получаю те же картинки. Может быть, 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

Я бы сохранил текущий выбор фотографий в предпочтениях в тот момент, когда решение принято. Чем вам не нужно возиться с методами живого цикла.

Решение, когда выбрать выбор из предпочтения или создать новый (случайный) выбор, легко. Просто проверьте

savedInstanceState 

из

public void onCreate (Bundle savedInstanceState) 

равна нулю. Если это так, это первый звонок. Последующее повторное открытие имеет ненулевое значение

+0

сейчас я получаю java.lang.RuntimeException: не удается приостановить активность – user1302569

+0

Является ли ваш код по-прежнему как в вопросе? –

Смежные вопросы