так что мое приложение, как это: mainActivity
->gameview
>gamegeneration
Как сохранить класс состояния?
mainActivity
будет передавать информацию (контекст, атрибут объявления) в gameview
который пройдет gridColRow
сумму в gamegeneration
(генерирует случайную сетку), которая затем будет отображаться с gameview
.
Однако, если я изменяю ориентацию экрана, создается новая сетка, как я могу заставить ее сохранить одну и ту же сетку даже после изменения ориентации экрана?
я использую это в Gameview,
protected Parcelable onSaveInstanceState() {}
И
protected void onRestoreInstanceState(Parcelable state) {}
& расслоения положить/восстановления.
Однако он не работает, сетка по-прежнему отличается. ниже - простой пример (где я просто хочу сохранить номер, но все еще имею проблему).
благодаря
protected Parcelable onSaveInstanceState() {
Bundle bd = new Bundle();
bd.putParcelable("instanceState", super.onSaveInstanceState());
bd.putInt("save1", numbersave);
return super.onSaveInstanceState();
}
protected void onRestoreInstanceState(Parcelable state) {
Bundle bd = (Bundle) state;
super.onRestoreInstanceState(bd.getParcelable("instanceState"));
numbersave= bundle.getInt("save1");
}
не понимает то, что вы здесь пытаются! вы пытаетесь передать объекты какого-либо класса, который вы создали, или вы пытаетесь сохранить состояние Activity и, следовательно, сохраняете состояние ваших объектов? –
2-й, мне нужно сохранить состояния объекта, чтобы использовалась одна и та же сетка и не воссоздавалась. Например, в forcreate для моей игровой активности у меня есть mView = новый GameView (это, null); , каждый раз, когда создается действие, он вызывается и создается новая сетка – confusedOne
, тогда класс [из которого вы хотите сохранить состояние объекта] должен 'parcelable' или' serializable', а затем использовать мой ответ, чтобы сохранить его состояние экземпляра –