問題タブ [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 - DialogまたはDialogPreferenceを使用して、特殊な設定ダイアログを作成する必要がありますか?
私は自分のアプリケーションでカスタム設定を作成しようとしています。これPreferenceActivity
により、Dialog
最終的に次のようになります。
EditText
サーバーを指定するButton
サーバー接続をテストするためのAIcon
サーバーに到達したかどうかを指定する応答
カスタムの作成は少し進んでいますが、このタイプの機能に役立つと思われるクラスにDialog
も遭遇しました。DialogPreference
私が使い始めた理由があるのか、DialogPreference
それとも私が簡単なカスタムをいじり続けるのが合理的であるのか疑問に思いますDialog
。
どちらかで問題が発生しますか?
android - ダイアログ設定を使用してシークバーからフロートを保存する
カスタムダイアログ設定を使用して、設定メニューにシークバーを生成しています。シークバーの実装を調査した後、シークバーから必要なフロート値を取得するために、次のコードを記述しました。
これは私が望むフロートを生成します。ただし、このフロートをメインのアクティビティで使用できるようにしたいと思います。次を使用してSharedPreferencesを使用して保存しようとしました。
これが、Activityを拡張するクラスでSharedPreferencesを使用する方法を学びました。
ただし、このシークバーはダイアログ設定を拡張するため、使用できません
getBaseContext()
getBaseContextメソッドがこのタイプに対して未定義であるというエラーが表示されます。
getBaseContext()をgetContext()に変更しようとしましたが、この実装に慣れていないことが原因である可能性がありますが、これは失敗しました。
このフロートをダイアログ設定から保存して、別のクラスで値を使用するにはどうすればよいですか?
SharedPreferencesを取得するために使用しているコード:
Mpm.class:パッケージcom.gbclimber.ep;
}
java - PreferenceActivityからPreferenceクラスで関数を実行する方法
PreferenceActivityで設定できるPreferenceタイプのタイプは非常に多くあります。特定の設定がクリックされたら、特定の機能を実行しようとしています。PreferencesScreenまたはeditTextonClickをオーバーライドする方法はありますか?
android - カスタムDialogPreferenceがonSharedPreferenceChangedリスナーでトリガーされないのはなぜですか?
ユーザーがポジティブボタンをクリックするだけでアクションをトリガーする設定でダイアログ設定を作成しようとしています。(データベースをクリアしますか?いいえ|はい)
私は実際には何も永続化したくありません。onSharedPreferenceChangedリスナーをトリガーするだけなので、アクティビティで処理できます。しかし、私はそれをトリガーする方法を理解することはできません
//解決
android - DialogPreference サブクラスに onRestoreInstanceState() を適切に実装する方法は?
整数を永続化するために使用される SeekBar を持つ独自のカスタム DialogPreference サブクラスを実装しています。onSaveInstanceState()
とに何を入れる必要があるかについて少し混乱していますonRestoreInstanceState()
。具体的には、ユーザーが操作する UI ウィジェット (私の場合は SeekBar ウィジェット) を更新する必要がありますonRestoreInstanceState()
か?
私が混乱している理由は、ここの API doc 記事で、これを行うように指示されているためです。
しかし、いくつかの公式の Android Preference クラス ( EditTextPreferenceおよびListPreference ) のソースを見ると、UI ウィジェットは で更新されていませんonRestoreInstanceState()
。Preference の基になる値のみが (上記の例では、 になりますmNewValue
)。
EditTextPreference の関連ソースは次のとおりです。
それで、コンセンサスは何ですか?UIウィジェットをどこで更新することになっていますか(まったく更新することになっている場合...)?
android - 画面を回転させたときに Fragment が状態を保持しないのはなぜですか?
画面が回転したときに表示されたままになるように、PreferenceFragment 内のいくつかのカスタム DialogPreference サブクラスを取得するのに問題がありました。PreferenceActivity を使用している場合、この問題は発生していないため、Android のバグなのか、コードの問題なのかわかりませんが、同じような経験があるかどうか誰か確認してほしいです。
これをテストするには、最初に少なくとも 1 つの DialogPreference を含む設定画面を作成します (どのサブクラスでもかまいません)。次に、それを PreferenceActivity に表示します。アプリを実行するときに、DialogPreference を押して、ダイアログが表示されるようにします。次に、向きが変わるように画面を回転させます。ダイアログは表示されたままですか?
次に、同じことを試しますが、PreferenceActivity の代わりに PreferenceFragment を使用して設定を表示します。繰り返しますが、画面を回転させてもダイアログは表示されたままですか?
これまでのところ、PreferenceActivity を使用するとダイアログが表示されたままになりますが、PreferenceFragment を使用すると表示されないことがわかりました。DialogPreference のソース コードを見ると、ダイアログが表示されたままになるのが正しい動作のようです。これは、画面の向き変更で が呼び出されisDialogShowing
たときに保存される状態情報であるためです。onSaveInstanceState()
したがって、バグが PreferenceFragment (およびその中のすべて) がその状態情報を復元できない可能性があると思います。
これが Android のバグである場合、PreferenceFragment を使用している人は状態情報を保存および復元できないため、広範囲に及ぶ影響があります。
誰か確認してくれませんか?バグではない場合、何が起こっているのでしょうか?
android - カスタム DialogPreference の Android スピナーは、方向の変更時にアプリケーションを強制的に閉じます
特定の時間間隔 (2 秒、2 分、3 時間など) を選択するために 2 つのスピナーを持つカスタム ダイアログ設定を作成しました。そのため、設定画面でカスタム設定をクリックすると、カスタム ダイアログ設定が表示されます。 2 つのスピナーが表示されます。ただし、スピナーの 1 つを選択すると (別のダイアログがポップアップします - 2 番目の画像を参照)、画面の向きを変更すると、アプリケーションが強制的に閉じられます。:S これは Android 2.3.6 Gingerbread で発生します。Android 4.1でテストしましたが、正常に動作しますが、スピナーが異なり、ダイアログではなく、コンボボックススタイルです。
すべての関数のコードを try catch に入れましたが、例外をキャッチできません。エラーは次のとおりです。
configchanges を android:configChanges="orientation|keyboardHidden" に変更する解決策がありますが、この問題を解決する別の方法があるかどうかを知りたいと思います。いくつかの副作用があります。
onDismiss 関数のレイアウトからスピナーを削除しようとしましたが、問題は解決しません。:S したがって、関数を使用しても使用しなくても問題は解決しません。
カスタム DialogPreference クラスは次のとおりです。
android - onUserInteraction が DialogPreference で機能しない
onUserInteraction
ユーザーとのやり取りで が呼び出されることが予想されます。で正常に動作しPreferenceActivity
ます。ただし、 aDialogPreference
がポップアップするonUserInteraction
と、タッチ イベントなどのユーザー インタラクションがあっても呼び出されなくなります。
それ DialogPreference
だけではないようです。が表示されるときはいつでもDialog
、ユーザー インタラクションをアクティビティに報告しません。
しかし、本当に必要な場合はどうすればよいですか。ありがとうございました。
android - Android DialogPreferenceのコンテキストメニュー...それは可能ですか?
Androidアプリのコンテキストメニューを作成しようとしていますDialogPreference
(関連する場合は、APIレベル8をターゲットにしています)。ListView
ちょっとしたハックでメニューを表示することができましたが(aの項目がクリックされたとき)、結果のコマンドを処理する方法がわかりません。私がこれまでに持っているのは:
私の
/li>onItemClick
ハンドラーでは、次のことを行います。
/li>ContextMenuGenerator
次のことを行います。
これにより、適切なタイミングで正しいメニューが表示されますが、アイテムを選択した後に何が起こるかわかりません。私はそれが作成することonContextItemSelected(MenuItem)
で呼び出されると思いますが、そこからそのイベントを処理できるコードに到達する方法がわかりません-それをサブクラス化する方法が見当たらず、方法がないようです外部リスナーをそれまたはのいずれかに接続します。私が考えていなかった他の方法はありますか?Dialog
DialogPreference
Dialog
ContextMenu