我有一个PrefrenceActivity
包含DialogPreference
我的自定义布局(编辑文本和复选框)。
当我的 DialogPrefernce 第一次被调用时,它onSetInitValue
被调用,我从 SharedPreferences 获取值,然后在onBindDialogView
我更新我的编辑文本和复选框。
然后我更改 edittext 值,(肯定)关闭对话框并将值保存到 SharedPreferences in onDialogClosed
。
迄今为止的出色工作。
不幸的是,当我再次打开对话框时,onSetInitValue
不会调用 并且值保持不变。我发现只有在关闭 PrefrenceActivity 并重新打开它之后才会调用 onSetInitValues 。
我使用一个标志来破解它(如果调用 onSetInitValues 我设置我检查 onBindDialogView 的标志 - 如果它没有设置我从 SharedPreferences 获取值)。
这是一个丑陋的解决方案。onSetInitValues
当首选项没有关闭时,有没有办法“重新呈现”对话框或调用?