android - 将 ArrayList 保存在 bundle savedInstanceState 中

标签 android

ArrayList 是在类级别定义的。 这些是我保存的实例方法:

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putStringArrayList("savedList", list);
}


@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    list=savedInstanceState.getStringArrayList("savedList");
}

但是,当我改变方向时,ArrayList 仍然是空白

最佳答案

当您使用 onRestoreInstanceState() 恢复状态时,它会在 onStart() 之后调用,因此您可以在定义适配器后使用保存的状态更新列表。您最好的选择是在 onCreate() 中恢复列表,就像在 onRestoreInstanceState() 中一样。您还可以重新定义适配器或调用 notifyDataSetChanged()

关于android - 将 ArrayList 保存在 bundle savedInstanceState 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16264764/

相关文章:

java - 使图像不出现在 Android 相册中

android - 应用程序重启时的空白 fragment

android - 如何将媒体播放器控件实现为跨 Activity 持久的页脚

android - 如何使用 phonegap 在 django 服务器中上传文件?

android - 播放默认声音

android - fragment 内的空白 Recyclerview

android - "Enable foldable display"即使将 android studio 更新到版本 3.5 并将 android 模拟器更新到 29.1.12 也不会显示

android - 没有从 linkedin 获取电子邮件地址?

android - 计算用户滚动时 Scrollview 的位移

android - 如何防止三星 Galaxy S3 上的软键盘默认出现白色背景