如何在Bundle中存储SparseArray <double>?

时间:2017-08-09 18:33:49

标签: android android-fragments sparse-matrix parcelable parcel

SparseArray如何存储在捆绑包中?

public void onSaveInstanceState(Bundle savedState) {
    // ...
    SparseArray<Double> values = mAdapter.getValues();
    savedState.putSparseParcelableArray(values);

上面的代码导致编译错误,说

  

&#34;&SparseArray LT; ?扩展Parcelable&gt;在Bundle中不能应用于SparseArray&lt; Double&gt;&#34;。

如何解决?

2 个答案:

答案 0 :(得分:2)

根据docs Parcelable的意思,允许使用类和它的子类型,但Double不实现{{1}},所以你不能将它与bundle persistence一起使用,尽管你可以让您的自定义bean类对象实现parcelable

答案 1 :(得分:0)

用于保存SparseArray,将此数据放入列表中并将该列表保存为outState包。

在onRestoreInstanceState中,检索列表并再次将其转换为SparseArray。

for detailed explaination