問題タブ [dialog-preference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - DialogPreference は、予期したときに設定を保存していませんか?
私は必要最小限の標準 DialogPreference を作成しましたが、これは正常に動作していますが、期待したときにデフォルトの共有設定に設定が保存されていません。
1) アプリを開くと、メイン アクティビティにデフォルトの共有設定からの foo の値が表示されます = 1
2) 設定に移動します
3) DialogPreference を開き、値 = 1 を表示する foo 設定をクリックします。
4) 値 3 を入力します
5) [OK] ボタンを使用して DialogPreference を閉じます
***** デフォルトの共有設定 foo は 3 になるはずです
6)私のDialogPreferenceを開き、値= 1を表示するfoo設定をクリックします
***** 私の DialogPreference は設定をデフォルトの共有設定に保存しませんでしたか?
7) ダイアログをキャンセル
8) デフォルトの共有設定からの foo の値を示すメイン アクティビティに戻ります = 3
*****私のDialogPreferenceは設定をデフォルトの共有設定に保存しました
9) 設定に移動します
10) 私の DialogPreference を開き、値 3 を表示する foo 設定をクリックします。
手順 (6) で、デフォルトの共有設定の値が foo = 3 ではないのはなぜですか?
フローが設定リストからメイン アクティビティに戻ったときに、設定がデフォルトの共有設定にのみ保存されているようです。これは、DialogPreference の onDialogClosed メソッドで設定を保存するのとは対照的です。
MyDialogPreference
編集: DialogPreference で処理している設定にはキーがなく、すべての問題を引き起こしているようです。しかし、このDialogPreferenceのpreferences.xmlファイルでキーを指定しました。キーを強制的に認識させるためにあらゆることを試みましたが、何も機能していません。
DialogPreference を取得して、preferences.xml ファイルから android:key を受け取る方法を教えてもらえますか?
設定.xml