android – 在bundle savedInstanceState中保存ArrayList

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轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...