如何保存列表<Fragments>的实例



我有一个碎片数组列表:ArrayList<Fragment> arrayList;

当我在Android Studio上更改方向时,我想保存Fragments List的实例。我该怎么做

我尝试在OnSaveInstanceState方法上执行此操作:

outState.putParcelableArrayList(C_KEY, (ArrayList<? extends Parcelable>) arrayList);

但是在我的onCreate方法上:

arrayList = (ArrayList<Fragment>) savedInstanceState.getParcelableArrayList(C_KEY);

由于以下错误而无法工作:不可转换的类型;无法强制转换"java.util.ArrayList<android.os.Parcelable>'到'java.util.ArrayList<androidx.fragment.app.fragment>

在onCreate方法中,您的强制转换不正确。

而不是

arrayList = (ArrayList<Fragment>) savedInstanceState.getParcelableArrayList(C_KEY);

放入

arrayList = (ArrayList<? extends Parcelable>) savedInstanceState.getParcelableArrayList(C_KEY);

另一种选择是使用ViewModel

相关内容

最新更新