如何在bundle中存储稀疏数组<Double>?



稀疏数组如何存储在捆绑包中?

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

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

"稀疏阵列<?扩展捆绑包中的可包裹>不能应用于稀疏数组<双>"。

如何解决?

根据文档SparseArray<? extends Parcelable> value)的意思是允许类及其子类型,但 Double 不实现Parcelable因此您不能将其与捆绑持久性一起使用,尽管您可以让自定义 Bean 类对象实现可分层

为了保存 SparseArray,请将此数据放入列表中并将该列表保存为 outState bundle。

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

详细解释

相关内容

最新更新