問題タブ [preferencefragment]
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 - 内部の PreferenceScreen が閉じられたことを検出する方法
Users
別の PreferenceScreen (と呼ぶ) 内に内部 PreferenceScreen (と呼ぶ)がありMain
ます。
タップUsers
すると新しい画面が開き、そこで設定を変更できます (多くのチェックボックス)。この画面が閉じられたとき、およびPreferenceScreen
に戻ったときを検出 (コールバックを起動) したいと考えています。
私が見つけた唯一の方法は、PreferenceScreen を継承してオーバーロードする新しいクラスを作成することですMain
onPrepareForRemoval
それを行うためのより簡単な方法があるかどうか疑問に思っていました。
android - サブスクリーン設定の actionBar にアップボタンを表示する
公式ガイドラインに示されているように、設定を実装しました。
次のような PreferenceFragment を作成する PreferenceActivity があります。
PreferenceFragment はリソースから設定をロードし、次のような設定サブスクリーンを含みます。
up-Button
これはこれまでのところうまくいきますが、設定サブスクリーンが表示されているときにアクションバーにを入れたいと思います。それを達成する方法はありますか?
アクティビティに設定しようとしsetDisplayHomeAsUpEnabled(true)
ましたが、アップボタンはメインの設定 (表示されるべきではない場所) にのみ表示され、サブ画面には表示されません。
公式ドキュメントでさえ、アクティブなアップボタンなしでサブスクリーンが表示されていることを疑問に思っています:
ドキュメントへのリンク:設定
どんな助けでも大歓迎です
android - PreferenceFragment の Android 単体テスト
テストする必要があるいくつかの PreferenceFragment クラスがあります。
それらをテストするにはどうすればよいですか?
たとえば、私はしようとしました:
ただし、この Android テスト クラスではパラメーターが Activity から継承する必要があるため、これは失敗します。また、PreferenceFragment は Fragment (Activity によって使用される) を継承します。
何を提案できますか?
android - PreferenceFragment の設定が更新されない
PreferenceFragment (actionBar の一部) をロードするメイン アクティビティがあります。
PreferenceFragment 内で、XML ファイルから設定を読み込みます。
問題は、タブを変更した場合 (ActionBar によって管理されていることを思い出してください)、別のフラグメントの設定の 1 つを変更し、preferenceFragment に戻って更新されないことです。特に問題は、さまざまなフラグメントから、さらにはリモート呼び出しによっても変更できる SwitchPreference(true/false) です (その後、共有設定で設定が変更されます。はい、変更をコミットしました)。
さまざまな解決策を探しましたが、正直なところ、うまくいくものは見つかりませんでした。私自身の考えは次のとおりです。
スイッチの Switch 要素を取得できれば問題は解決するので、 onStart() または onResume() メソッドでスイッチを true に設定できます。しかし、Switch オブジェクトを取得するための変更はありますか? 通常のレイアウトをロードすると、次のようにスイッチにアクセスできます。
その後、次のようにスイッチの位置を設定できます。
別の解決策は、実際のビューを破棄して addPreferencesFromResource() を再度呼び出すことですが、正直なところ、これを行う方法がわかりません....
3 番目の解決策は、PreferenceFragment で OnCheckedChangeListener を使用することですが、やはり問題はスイッチを変更/更新する方法です。
サービスの 1 つで OnSharedPreferenceChangeListener を実行していて、この問題をデバッグするために、リスナーに switchPreference のステータスを記録させたので、Preference が正しく更新されていると確信しています。
どうにかして助けてくれませんか?
残念ながら、明日の朝までに自分の質問に答えることができないので、質問を編集します。
ありがとうございます。基になるアクティビティを再開したくはありませんが、フラグメントのみを再開します。
幸いなことに、このスレッドで手がかりを見つけました: How do you refresh the PreferenceActivity to show changes in settings?
本当に簡単に SwitchPreference にアクセスできます。私の解決策は次のとおりです。
このようにして、Preference を SwitchPreference にキャストし、onStart() 呼び出しのたびに変更するだけです。これが私の問題に対する最良の解決策だと思います。
うまくいけば、この答えが将来誰かの時間を節約するでしょう =) ありがとうございました!
android - xmlなしでフォームフィールドをpreferencefragmentに動的に追加するAndroid
フォーム フィールドを事前定義したリソースをpreferencefragment
使用する代わりに、動的に作成された設定を に追加する方法を示す非推奨 (HONEYCOMB+) の例が見つからないようです。xml
具体的には、電話とペアリングされた Bluetooth デバイスのチェックボックスのリストを作成しようとしています。を使用しmBluetoothAdapter.getBondedDevices()
、おそらくCheckBoxPreference
.
アドバイスをいただければ幸いです。
android - 設定フラグメントからビューを取得できません
次の設定フラグメント xml があります。
そして、私が上で指している私のサウンドスイッチwidgetLayout:
私の問題は、onClickListener をアタッチできるように、コードでスイッチを取得する必要があることです。
Preference Activity でビューを見つけようとしました:
私も自分のフラグメントで試しました:
設定画面に配置したスイッチにプログラムでアクセスするにはどうすればよいですか?
編集: SwitchPreference を使用していない理由について質問がありました。基本的に、スイッチでサウンドのオン/オフを切り替えられるようにしたいだけでなく、設定 (スイッチではなくタイトル) をクリックすると新しい PreferenceScreen に切り替えられるようにしたいと考えています。SwitchPreference を使用しようとしましたが、テキストをクリックすると、スイッチが切り替わり、単に PreferenceScreen に送信されるのではなく、PreferenceScreen に送信されます。
メイン設定でwifiの動作を模倣しようとしています。IE では、トップ レベルからスイッチをオン/オフできますが、テキストをクリックしてより詳細な画面にアクセスすることもできます。