【发布时间】:2017-09-05 05:04:25
【问题描述】:
我有一个 SparseArray 或 Double,我必须将其写入 Parcel。
这是我的代码:
@Override
public void writeToParcel(Parcel dest, int flags) {
SparseArray<Double> spa = new SparseArray<>();
spa.put(1, 0.8d);
spa.put(5, 6.4d);
spa.put(89, 0.8d);
dest.writeSparseArray(spa);
}
这不会编译,出现这个错误:
writeSparseArray (android.util.SparseArray
>) 在 包裹不能应用于 (android.util.SparseArray )
writeSparseArray() 的 Android Studio javadoc 告诉我它使用了Parcel 的writeValue(),而the doc 在这个方法中说它应该可以工作:
给定的
Object值当前可能是以下类型之一: ...,Double,...
现在,我必须将我的 SparseArray 复制到 HashMap 并使用 putSerializable(),我知道这几乎是对理智的侮辱。
如何有效地将我的 Double SparseArray 复制到 Parcel 中?
【问题讨论】:
标签: android sparse-matrix parcelable