簡體   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