java – android恢复在backstack中的片段的实例状态

嗨,我有一个有两个片段的活动.

>片段A
>片段B

> Fragment A有一个EditText和一个ListView.
>一旦我在EditText中输入内容并按Enter键,我就会填充ListView.
>现在片段A的ListView填充了数据.
>单击片段A的ListView上的任何项目将用户发送到片段B.
>此时我正在用片段B替换片段A.
>因此,当用户点击按钮时,他会回到片段A

现在的问题是,如果用户在片段B中并且配置更改发生像屏幕旋转等不止一次,那么我的ListView是空的,因为我的arraylist为null.

请注意,我在片段A和片段B中使用onSavedInstanceState.
如果我的当前片段是片段A并且发生配置更改,那么恢复状态就没有问题,因为在onCreateView中我从bundle获取了arraylist.

我知道当我从片段B回到之前在backstack中的片段A时,我的arraylist为空的原因.当片段A在backstack中时,被调用的唯一方法是onSaveInstanceState,因此在第一次配置更改后我的arraylist字段为null因为我无法将存储在savedInstateState包中的arraylist分配给arraylist字段.

我不想在清单中使用android:configchanges属性.

我的问题是如何恢复backstack中片段的状态.

最佳答案
我通过将该片段的所有细节传递给主要活动,然后将其添加到backstack并将状态保存在main活动的savedInstance状态以及每当Backstack更改并且之前的片段可见时实现了保留backstack中片段状态的目标我从主活动传递该片段的已保存实例状态,这样我保留了状态.我不确定这是否是正确的做法.

相关文章

以下为个人理解,如错请评 CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/ DE: 设备加密 (DE) 存...
转载来源:https://blog.csdn.net/yfbdxz/article/details/114702144 用EventLog.writeEvent打的日志(或...
事件分发机制详解 一、基础知识介绍 1、经常用的事件有:MotionEvent.ACTION_DOWN,MotionEvent.ACTION...
又是好久没有写博客了,一直都比较忙,最近终于有时间沉淀和整理一下最近学到和解决的一些问题。 最近进...
Android性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向...
android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的...