我在屏幕方向更改时保存实例时遇到问题。我有一个特定结构的数组:
private ArrayList <MyObject> myArr;
这个结构是:
public MyObject{
public variable1;
//..... many variables here and one array :)
}
我需要保存"myArr"数组。如何保存此"变量"?
基本上,应该使用Android Activity API Ref中描述的方式保存实例:您需要使用onSaveInstanceState(Bundle)
。此外,您可以在清单中为某个活动设置android:configChanges="orientation"
,以防止其重新创建(这样就不需要任何状态保存了)。
将onSaveInstanceState(Bundle)
中问题中的对象保存到捆绑包:
- 通过
MyObject
实现Parcelable(例如,可以在此处找到示例等) - 通过
onSaveInstanceState()
中的putParcelableArrayList()将ArrayList放入bundle中,旋转后通过onCreate()
中的getParcelableArray()返回