我有一個SparseArray<myObject>
,並希望在我的活動中將其存儲在onSaveInstanceState
方法中,並在oncreate
中將其恢復。我在包中發現putSparseParcelableArray
方法把SparseArray和onSaveInstanceState
方法做:如何在包中存儲sparsearray
bundle.putSparseParcelableArray("mySparseArray", mySparseArray);
但是文摘顯示了這個錯誤:
The method putSparseParcelableArray(String, SparseArray<? extends Parcelable>) in the type Bundle is not applicable for the arguments (String, SparseArray<myObject>)
而且速戰速決撒開參數mySparsArray
到SparseArray<? extends Parcelable>
,但如果我這樣做,並且把它在onCreate方法:
mySparseArray = (SparseArray<myObject>) savedInstanceState.getSparseParcelableArray("mySparseArray");
它得到這個錯誤:
Cannot cast from SparseArray<Parcelable> to SparseArray<myObject>
如果這種方式是錯誤的,將mySparseArray放入捆綁包的解決方案是什麼? 任何幫助將不勝感激。
什麼是'myObject'?它是否實現了Parcelable? – Wenhui 2013-02-15 17:21:12
這是一個自定義的類,我定義並不執行任何操作。它應該實現Parcelable嗎? – Ehsan 2013-02-15 17:30:54
是的,看看參數'putSparseParcelableArray',它是'SparseArray <?擴展了Parcelable>',所以只有實現了Parcelable的對象纔可以放入該包中。你是否需要如何實現'Parcelable'的幫助,這是非常簡單的。 – Wenhui 2013-02-15 17:33:01