我已经阅读了一些SO,但是似乎找不到关于我的问题的任何答案。我有一个自定义对象的ArrayList,它实现了称为Parcelable
的listOfBuddies
。我正在尝试使用以下代码保存其状态...
@Override
public void onSaveInstanceState(Bundle buddies){
buddies.putParcelable("buddies", listOfBuddies);
super.onSaveInstanceState(buddies);
}
@Override
public void onRestoreInstanceState(Bundle buddies) {
listOfBuddies = buddies.getParcelable("buddies");
super.onRestoreInstanceState(buddies);
}
public void onStart(Bundle buddies) {
super.onStart();
listOfBuddies = buddies.getParcelable("buddies");
}
@Override
public void onCreate(Bundle buddies) {
super.onCreate(buddies);
setContentView(R.layout.buddylist);
if(buddies != null){
listOfBuddies = buddies.getParcelable("buddies");
}
}
但是,伙伴在重新启动Acitivty之后在OnCreate中始终返回null。也许我正在解决这个错误...但是,基本上,我想在应用程序运行期间一直存储对象的ArrayList。
最佳答案
我不确定这是否行得通,但确实有建议。而不是使ArrayList本身实现Parcelable,而是尝试将自定义对象设置为实现Parcelable。然后使用putParcelableArrayList和getParcelableArrayList检索列表。
关于java - Android储存空间:OnSaveInstanceState无法运作吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5706397/