稀疏数组如何存储在捆绑包中?
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。
详细解释