如何保存list< fragments>

ivqmmu1c  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(297)

我有一个碎片列表: ArrayList<Fragment> arrayList; 我想在androidstudio上更改方向时保存片段列表的示例。我该怎么做?
我尝试在onsaveinstancestate方法上执行此操作:

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

但在我的oncreate方法中:

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

不工作是因为error:inconvertible types; 无法将“java.util.arraylist<android.os.parcelable>”强制转换为“java.util.arraylist<androidx.fragment.app.fragment>

d6kp6zgx

d6kp6zgx1#

在oncreate方法中,您的强制转换不正确。
而不是

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

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

另一个选择是使用 ViewModel

相关问题