3

カスタム レイアウト (edittext とチェックボックス)PrefrenceActivityを含むがあります。DialogPreference

私の DialogPrefernce が初めて呼び出されると、それonSetInitValueが呼び出され、SharedPreferences から値を取得しonBindDialogView、編集テキストとチェックボックスを更新します。

次に、edittext の値を変更し (正)、ダイアログを閉じて、値を SharedPreferences in に保存しますonDialogClosed

これまでのところ素晴らしい仕事です。

残念ながら、ダイアログを再度開くと、onSetInitValueは呼び出されず、値は変更されません。onSetInitValues は、PrefenceActivity を閉じて再度開いた後にのみ呼び出されることがわかりました。

フラグを使用してハッキングしました(onSetInitValuesが呼び出された場合、onBindDialogViewでチェックするフラグを設定します-設定されていない場合は、SharedPreferencesから値を取得します)。

これは醜い解決策です。onSetInitValues環境設定が閉じられていないときにダイアログまたは呼び出しを「再レンダリング」する方法はありますか?

4

1 に答える 1