我在理解如何製作一個簡單的DialogFragment來編輯一個(複雜)對象,比如一個Person,名字和姓氏,以及一個電子郵件地址列表,每個都包含一個枚舉(工作,家庭等)和地址。Android DialogFragment和配置更改
首先,我該如何正確地將Person對象傳遞給DialogFragment?我目前的解決方案有一個setPerson(Person person)方法,這是在創建DialogFragment之後調用的,但是在dialog.show()之前調用。這工作正常,直到發生配置更改(用戶旋轉屏幕)。 DialogFragment被重新創建,並且對Person對象的引用爲空。我知道我可以使用onSaveInstanceState保存實例,但該對象非常複雜且昂貴,並且以這種方式保存大對象似乎很浪費。
我也試過在使用我的對話框的活動中禁用配置更改,並修復了問題,但我希望對話框可以重複使用,並要求所有使用它的活動禁用配置更改似乎是錯誤的。
第三種選擇是將引用保存到一個靜態變量中,但同樣我希望該對話框是可重用的並且能夠支持多個實例。
其他人如何在可重複使用的對話框中處理昂貴且複雜的對象?