Я создаю приложение для игры в боулинг, которое будет включать в себя игру в бинго. Для упрощения, в классе Score есть кнопка, с которой начинается новое занятие (класс Bingo). Находясь в игре, наверняка нужно переходить от счета к бинго и обратно. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что onSaveInstanceState не вызывается, когда я пытался «вернуться» из Бинго в Счет. Следовательно, числа бинго, которые должны быть зафиксированы, меняются каждый раз, когда я нажимаю кнопку «Игра», которая запускает бинго.
Я искал и пробовал все связанные ответы (включая https://developer.android.com/guide/components/activities/activity-lifecycle),, но у меня ничего не получалось. Я также пытался временно удалить screenOrientation для любого действия, когда я прочитал, что поворот экрана создаст новый экземпляр Вот мой код, связанный с проблемой.
Score.java (кнопка для перемещения Бинго)
@Override
public void onClick(View view) {
String button_text;
button_text = ((Button) view).getText().toString();
if (button_text.equals("GAME")) {
Intent gamePage = new Intent(this, Game.class);
startActivity(gamePage);
}
Game.java (bingo1 и bingo2 - это массив целых чисел)
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
...
if (savedInstanceState != null){
bingo1 = savedInstanceState.getIntArray("bingo1");
bingo2 = savedInstanceState.getIntArray("bingo2");
}else {
...
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putIntArray("bingo1", bingo1);
savedInstanceState.putIntArray("bingo2", bingo2);
super.onSaveInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
bingo1 = savedInstanceState.getIntArray("array1");
bingo2 = savedInstanceState.getIntArray("array2");
}
Поправьте меня, если вызов в onCreate () и onRestoreInstanceState одновременно является неправильным.
Как указывалось ранее, я пытался исправить число бинго во время движения вперед и назад от счета к игре / бинго, чего мне не удалось достичь с помощью этого кода. Я не знаю, есть ли еще код, который связан с этой проблемой, поскольку я все еще новичок, но это будет очень полезно, если вы, ребята, можете помочь. Спасибо!