カスタム レイアウト (edittext とチェックボックス)PrefrenceActivity
を含むがあります。DialogPreference
私の DialogPrefernce が初めて呼び出されると、それonSetInitValue
が呼び出され、SharedPreferences から値を取得しonBindDialogView
、編集テキストとチェックボックスを更新します。
次に、edittext の値を変更し (正)、ダイアログを閉じて、値を SharedPreferences in に保存しますonDialogClosed
。
これまでのところ素晴らしい仕事です。
残念ながら、ダイアログを再度開くと、onSetInitValue
は呼び出されず、値は変更されません。onSetInitValues は、PrefenceActivity を閉じて再度開いた後にのみ呼び出されることがわかりました。
フラグを使用してハッキングしました(onSetInitValuesが呼び出された場合、onBindDialogViewでチェックするフラグを設定します-設定されていない場合は、SharedPreferencesから値を取得します)。
これは醜い解決策です。onSetInitValues
環境設定が閉じられていないときにダイアログまたは呼び出しを「再レンダリング」する方法はありますか?