問題タブ [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 - 設定画面に sharedPreference ダイアログ変数を表示する
これは簡単なことですが、これを正しく行う方法が見つかりません。私が知っている限り、私はそれを間違って設計したかもしれません。
ユーザーがアプリのメイン フラグメントのオプション メニューを使用してナビゲートできる PreferenceFragment があります。(私のアプリには 1 つのアクティビティと 3 つのフラグメントしかありません。) この PreferenceFragment は、1 つのオプションしかない設定画面です。このオプションをクリックすると、TimePicker を含むダイアログがユーザーに表示されます。DialogPreference を使用して TimePicker ダイアログを表示します。ユーザーが時間を選択すると、選択した時間を設定画面に表示したい。
以下のコードとスクリーンショット。
設定画面を表示するPreferenceFragmentクラス。
TimePicker を示す TimePreference クラス
コードに記載されている行で次の例外が発生します。
シナリオ : 設定画面でオプションをクリックします --> DialogPreference (TimePicker) ダイアログが開きます --> 時刻を設定します --> OK --> 問題ありません -->プロセスを繰り返します --> 設定画面でオプションをクリックします - -> DialogPreference (TimePicker) ダイアログが開きます --> 時刻を設定します --> 上記の例外でクラッシュします!!!
コンテキストで getString() を呼び出そうとすると思いますが、getActivity が null を返すため、例外がスローされますが、SettingsFragment フィールドの TimePicker でユーザーが選択した値を設定するにはどうすればよいですか?
ここ数日、私を悩ませています。誰でもこれについて私を案内できますか?
android - PreferencesDialog に alertDialog ビルダーを使用する
プログラムで入力したい複数選択リストを使用してカスタム設定を作成しようとしています。以下に示すようにカスタム DialogPreference を作成しようとし、AlertDialog ビルダーを使用してダイアログを作成しました。問題は、さまざまなチュートリアルをつなぎ合わせて、ビューを返す必要がある onCreateDialogView() を実装/オーバーライドしていることです。AlertDialog.Builder を取得してビューを返すことができるかどうかはわかりません。
この問題を解決する方法についての考えや推奨事項は、ビルダーをビューとして返すか、プログラムでダイアログを作成する別の方法のいずれかです。
ここに私が結合しようとしている 2 つのチュートリアルがあります: Concise way of writing new DialogPreference classes? および Android: AlertDialog 内の複数選択 ListView でアイテムを選択する
android - onCreateView は、DialogPreference の Fragment に対して 1 回だけ呼び出されます
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
次のように、スーパーを呼び出さずにメソッドをオーバーライドするフラグメントがあります。
このフラグメントは、アクティビティとカスタムDialogPreference
実装の両方で使用されます。フラグメントはアクティビティのレイアウト ファイルと<fragment>
タグ付きの設定に含まれandroid:id
、両方に属性があります (ただし、id はアクティビティ レイアウトと設定レイアウトで異なります)。
カスタム DialogPreference は PreferenceFragment 内で使用され、すべてが意図したとおりに機能します。PreferenceScreen でカスタム設定をクリックすると、onCreateView メソッドが呼び出され、Fragment を内部に含む DialogFragment が正しく表示されます。戻ると、ダイアログが閉じて、PreferenceScreen が再び表示されます。次のクリックで onCreateView が再度呼び出され、すべて正常に表示されます。
ここで説明したように、このフラグメントに「RetainedFragment」を追加して、いくつかの状態を保存しようとしています。これを実現するために、フラグメントの onCreate を次のように上書きしました。
これはActivityの場合には完全に機能しますが、現在、DialogPreferenceを2回続けて開こうとすると、アプリがクラッシュします
いくつかのブレークポイントを設定しましたonCreateView
が、フラグメントのメソッドは、PreferenceScreen を開いた後に DialogPreference を初めてクリックしたときにのみ呼び出されるようです。間に PreferenceScreen を閉じると、問題なく動作します。
新しい「RetainedFragment」ではなく、最初の Fragment に対して例外が発生することは注目に値します。
android - カスタム DialogPreference および bindPreferenceSummaryToValue でデフォルト値が設定されない
bindPreferenceSummaryToValue
カスタム DialogPreference を作成して、設定にシークバー ダイアログを表示し、設定アクティビティでデフォルトで提供されるメソッドを使用して、その概要をその値にバインドしました。(以下を参照)すべて正常に動作していますが、最初の設定ではデフォルトではなく 0 に設定されています。これは、0 が bindPreferenceSummaryToValue のフォールバック値として設定されているためです。
カスタム DialogPreference には、次のメソッドがあります。
もちろん、prefs.xmlには次のものがあります。
そしてこれはMainActivityにあります:
フォールバック値は、値が null の場合に使用されると思いますが、デフォルトに設定した場合、なぜ null になるのでしょうか?
android - DialogPreference 原因エラー onDisplayPreferenceDialog()
シンプルな (はい/いいえ) ダイアログ設定を作成したいのですが、この投稿の回答に従いました - XML から DialogPreference を作成する
しかし、私はエラーが発生します
私のXML
そして私のJAVAコード
私は何を間違っていますか?