繁体   English   中英

如何保存列表实例<fragments></fragments>

[英]How do I save instance of List<Fragments>

我有一个 ArrayList 的片段: 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM