【问题标题】:How do I save instance of List<Fragments>如何保存 List<Fragments> 的实例
【发布时间】:2021-02-26 03:11:06
【问题描述】:

我有一个片段数组列表:ArrayList&lt;Fragment&gt; arrayList;

我想在 Android Studio 上更改方向时保存 Fragments List 的实例。我该怎么做?

我尝试在 OnSaveInstanceState 方法上执行此操作:

outState.putParcelableArrayList(C_KEY, (ArrayList<? extends Parcelable>) arrayList);

但在我的 onCreate 方法上:

arrayList = (ArrayList<Fragment>) savedInstanceState.getParcelableArrayList(C_KEY);

由于错误:Inconvertible types; 不起作用;无法将 'java.util.ArrayList' 转换为 'java.util.ArrayList

【问题讨论】:

    标签: java android android-studio android-fragments android-listfragment


    【解决方案1】:

    在您的 onCreate 方法中,您的投射不正确。

    而不是

    arrayList = (ArrayList<Fragment>) savedInstanceState.getParcelableArrayList(C_KEY);
    

    arrayList = (ArrayList<? extends Parcelable>) savedInstanceState.getParcelableArrayList(C_KEY);
    

    另一个选项是使用ViewModel

    【讨论】:

    • 我也试过了,但它不起作用,因为我的 arrayList 是一种 Fragment。
    • 我的arrayList 是一个片段的arraylist。每个片段都包含一个 webview。所有这些 webview 都是 ViewPager 中的片段,并设置了 FragmentStatePagerAdapter 的适配器
    猜你喜欢
    • 2013-02-25
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多