我已经阅读了一些SO,但是似乎找不到关于我的问题的任何答案。我有一个自定义对象的ArrayList,它实现了称为ParcelablelistOfBuddies。我正在尝试使用以下代码保存其状态...

@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/

10-09 19:27