問題タブ [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.

0 投票する
1 に答える
629 参照

android - DialogまたはDialogPreferenceを使用して、特殊な設定ダイアログを作成する必要がありますか?

私は自分のアプリケーションでカスタム設定を作成しようとしています。これPreferenceActivityにより、Dialog最終的に次のようになります。

  1. EditTextサーバーを指定する
  2. Buttonサーバー接続をテストするためのA
  3. Iconサーバーに到達したかどうかを指定する応答

カスタムの作成は少し進んでいますが、このタイプの機能に役立つと思われるクラスにDialogも遭遇しました。DialogPreference

私が使い始めた理由があるのか​​、DialogPreferenceそれとも私が簡単なカスタムをいじり続けるのが合理的であるのか疑問に思いますDialog

どちらかで問題が発生しますか?

0 投票する
1 に答える
954 参照

android - ダイアログ設定を使用してシークバーからフロートを保存する

カスタムダイアログ設定を使用して、設定メニューにシークバーを生成しています。シークバーの実装を調査した後、シークバーから必要なフロート値を取得するために、次のコードを記述しました。

これは私が望むフロートを生成します。ただし、このフロートをメインのアクティビティで使用できるようにしたいと思います。次を使用してSharedPreferencesを使用して保存しようとしました。

これが、Activityを拡張するクラスでSharedPreferencesを使用する方法を学びました。

ただし、このシークバーはダイアログ設定を拡張するため、使用できません

getBaseContext()

getBaseContextメソッドがこのタイプに対して未定義であるというエラーが表示されます。

getBaseContext()をgetContext()に変更しようとしましたが、この実装に慣れていないことが原因である可能性がありますが、これは失敗しました。

このフロートをダイアログ設定から保存して、別のクラスで値を使用するにはどうすればよいですか?

SharedPreferencesを取得するために使用しているコード:

Mpm.class:パッケージcom.gbclimber.ep;

}

0 投票する
1 に答える
1654 参照

java - PreferenceActivityからPreferenceクラスで関数を実行する方法

PreferenceActivityで設定できるPreferenceタイプのタイプは非常に多くあります。特定の設定がクリックされたら、特定の機能を実行しようとしています。PreferencesScreenまたはeditTextonClickをオーバーライドする方法はありますか?

0 投票する
1 に答える
2061 参照

android - カスタムDialogPreferenceがonSharedPreferenceChangedリスナーでトリガーされないのはなぜですか?

ユーザーがポジティブボタンをクリックするだけでアクションをトリガーする設定でダイアログ設定を作成しようとしています。(データベースをクリアしますか?いいえ|はい)

私は実際には何も永続化したくありません。onSharedPreferenceChangedリスナーをトリガーするだけなので、アクティビティで処理できます。しかし、私はそれをトリガーする方法を理解することはできません

//解決

0 投票する
1 に答える
2215 参照

android - DialogPreference サブクラスに onRestoreInstanceState() を適切に実装する方法は?

整数を永続化するために使用される SeekBar を持つ独自のカスタム DialogPreference サブクラスを実装しています。onSaveInstanceState()とに何を入れる必要があるかについて少し混乱していますonRestoreInstanceState()。具体的には、ユーザーが操作する UI ウィジェット (私の場合は SeekBar ウィジェット) を更新する必要がありますonRestoreInstanceState()か?

私が混乱している理由は、ここの API doc 記事で、これを行うように指示されているためです。

しかし、いくつかの公式の Android Preference クラス ( EditTextPreferenceおよびListPreference ) のソースを見ると、UI ウィジェットは で更新されていませんonRestoreInstanceState()。Preference の基になる値のみが (上記の例では、 になりますmNewValue)。

EditTextPreference の関連ソースは次のとおりです。

それで、コンセンサスは何ですか?UIウィジェットをどこで更新することになっていますか(まったく更新することになっている場合...)?

0 投票する
2 に答える
17372 参照

android - 画面を回転させたときに Fragment が状態を保持しないのはなぜですか?

画面が回転したときに表示されたままになるように、PreferenceFragment 内のいくつかのカスタム DialogPreference サブクラスを取得するのに問題がありました。PreferenceActivity を使用している場合、この問題は発生していないため、Android のバグなのか、コードの問題なのかわかりませんが、同じような経験があるかどうか誰か確認してほしいです。

これをテストするには、最初に少なくとも 1 つの DialogPreference を含む設定画面を作成します (どのサブクラスでもかまいません)。次に、それを PreferenceActivity に表示します。アプリを実行するときに、DialogPreference を押して、ダイアログが表示されるようにします。次に、向きが変わるように画面を回転させます。ダイアログは表示されたままですか?

次に、同じことを試しますが、PreferenceActivity の代わりに PreferenceFragment を使用して設定を表示します。繰り返しますが、画面を回転させてもダイアログは表示されたままですか?

これまでのところ、PreferenceActivity を使用するとダイアログが表示されたままになりますが、PreferenceFragment を使用すると表示されないことがわかりました。DialogPreference のソース コードを見ると、ダイアログが表示されたままになるのが正しい動作のようです。これは、画面の向き変更で が呼び出されisDialogShowingたときに保存される状態情報であるためです。onSaveInstanceState()したがって、バグが PreferenceFragment (およびその中のすべて) がその状態情報を復元できない可能性があると思います。

これが Android のバグである場合、PreferenceFragment を使用している人は状態情報を保存および復元できないため、広範囲に及ぶ影響があります。

誰か確認してくれませんか?バグではない場合、何が起こっているのでしょうか?

0 投票する
1 に答える
1908 参照

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 クラスは次のとおりです。

0 投票する
3 に答える
4551 参照

android - onUserInteraction が DialogPreference で機能しない

onUserInteractionユーザーとのやり取りで が呼び出されることが予想されます。で正常に動作しPreferenceActivityます。ただし、 aDialogPreferenceがポップアップするonUserInteractionと、タッチ イベントなどのユーザー インタラクションがあっても呼び出されなくなります。

それ DialogPreferenceだけではないようです。が表示されるときはいつでもDialog、ユーザー インタラクションをアクティビティに報告しません。

しかし、本当に必要な場合はどうすればよいですか。ありがとうございました。

0 投票する
1 に答える
293 参照

android - Android DialogPreferenceのコンテキストメニュー...それは可能ですか?

Androidアプリのコンテキストメニューを作成しようとしていますDialogPreference(関連する場合は、APIレベル8をターゲットにしています)。ListViewちょっとしたハックでメニューを表示することができましたが(aの項目がクリックされたとき)、結果のコマンドを処理する方法がわかりません。私がこれまでに持っているのは:

  • 私のonItemClickハンドラーでは、次のことを行います。

    /li>
  • ContextMenuGenerator次のことを行います。

    /li>

これにより、適切なタイミングで正しいメニューが表示されますが、アイテムを選択した後に何が起こるかわかりません。私はそれが作成することonContextItemSelected(MenuItem)で呼び出されると思いますが、そこからそのイベントを処理できるコードに到達する方法がわかりません-それをサブクラス化する方法が見当たらず、方法がないようです外部リスナーをそれまたはのいずれかに接続します。私が考えていなかった他の方法はありますか?DialogDialogPreferenceDialogContextMenu