[英]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.