所以我的应用程序是这样的: mainActivity
- >gameview
>gamegeneration
如何保存视图类的状态?
的mainActivity
将传递信息(上下文,attibutes)插入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");
}
我不明白你是什么正试图在这里做!你是否试图传递你创建的某个类的对象,或者你试图保存活动状态并因此保存你的对象状态? –
第二个,我需要保存对象状态,以便使用相同的网格,而不是重新创建。例如在我的游戏活动的oncreate,我有mView = new GameView(this,null); 。每次创建活动时都会调用它,并且新的网格被制作为 – confusedOne
,那么[您要保存其对象状态的类]必须为'parcelable'或'serializable',然后使用我的答案来保存它的实例状态 –