我在理解如何制作一个简单的DialogFragment来编辑一个(复杂)对象,比如一个Person,名字和姓氏,以及一个电子邮件地址列表,每个都包含一个枚举(工作,家庭等)和地址。Android DialogFragment和配置更改
首先,我该如何正确地将Person对象传递给DialogFragment?我目前的解决方案有一个setPerson(Person person)方法,这是在创建DialogFragment之后调用的,但是在dialog.show()之前调用。这工作正常,直到发生配置更改(用户旋转屏幕)。 DialogFragment被重新创建,并且对Person对象的引用为空。我知道我可以使用onSaveInstanceState保存实例,但该对象非常复杂且昂贵,并且以这种方式保存大对象似乎很浪费。
我也试过在使用我的对话框的活动中禁用配置更改,并修复了问题,但我希望对话框可以重复使用,并要求所有使用它的活动禁用配置更改似乎是错误的。
第三种选择是将引用保存到一个静态变量中,但同样我希望该对话框是可重用的并且能够支持多个实例。
其他人如何在可重复使用的对话框中处理昂贵且复杂的对象?