我有一个碎片数组列表: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