3 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
我可以在這里看到許多問題:
為什么要使用addressParcelable?為什么不使地址實(shí)現(xiàn)Parcelable,然后使用:
intent.putParcelableArrayListExtra( "addresses", addyExtras );
您的可包裹對象必須包含一個(gè)靜態(tài)CREATOR。有關(guān)詳細(xì)信息,請參見文檔。
在致電之前,您實(shí)際上并未在意圖中添加任何其他功能startActivity()。有關(guān)建議,請參見第1點(diǎn)。
我認(rèn)為您需要解決所有這些問題才能使其正常運(yùn)行。

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
可以更簡單地完成它,而無需實(shí)現(xiàn)Parcelable
... 的所有艱辛工作ArrayList
(但不是任何一項(xiàng)List
)Serializable
。因此,您可以使用放置整個(gè)列表,putExtra()
并使用來檢索它getSerializableExtra()
,如Sam所說。
但是,我想補(bǔ)充一件事:數(shù)組列表存儲的對象也必須實(shí)現(xiàn)Serializable
...并且該對象可能包含的所有其他復(fù)雜對象(在您的情況下,都不是)也必須實(shí)現(xiàn)(因此它是遞歸的-在為了序列化一個(gè)對象,您必須能夠序列化其所有字段)。
現(xiàn)在,您可能會問自己,為什么要實(shí)施Serializable
而不是Parcelable
何時(shí)已經(jīng)有讀寫讀寫數(shù)組列表的方法?好吧...區(qū)別在于簡單性-只需添加implements Serializable
和private static final long serialVersionUID = SOME_CONSTANT
,您就可以完成!這就是為什么我從不使用Parcelable
-您可以使用Serializable
字面意義上的兩行代碼來完成所有這些事情-而不是許多方法繼承和所有這些東西...

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊
putExtra()
并且getSerializable()
將存儲和檢索ArrayList<>
您的自定義對象,并實(shí)現(xiàn)無需接口。為我工作!
- 3 回答
- 0 關(guān)注
- 450 瀏覽
添加回答
舉報(bào)