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