[解決済み] Androidの環境設定。ユーザーが環境設定画面を使用していない場合、デフォルト値を読み込むにはどうすればよいですか?
2022-07-21 20:28:47
質問
PreferenceActivity を使用して、ユーザーが値を設定できるようにしています。 私は、定義されたプリファレンスを含む xml ファイルを与えています。
私はすべての
android:defaultValue=""
を設定しました。
アプリケーションを起動するとき、環境設定が必要です。まだ手動で設定されていない場合は、デフォルト値が必要です。
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean value = prefs.getBoolean("key"), false);
しかし
android:defaultValue="true"
になっても
false
. つまり、XMLで設定されたdefaultValueは、プリファレンス画面を初期化するとき以外には使われていないようです。
にデフォルト値をハードコードするのは嫌ですね。
getBoolean()
メソッドにハードコードしたくありません。そこで、1箇所で定義するだけでデフォルト値を取得する方法はないでしょうか?
どのように解決するのですか?
この質問は、私と似ています。
初期化-プリファレンス-from-xml-in-main-activity
このコードを
onCreate
メソッドに記述してください。
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
これはXMLから設定を読み込み、最後のパラメータ(
readAgain
) は、ユーザーの設定が上書きされないことを保証します。つまり
readAgain
引数を
false
は、このメソッドが過去に一度も呼び出されなかった場合にのみデフォルト値が設定されることを意味します。したがって、Activityが作成されるたびにユーザーの設定を上書きする心配はありません。
次に PreferenceManager.setDefaultValuesを参照してください。 を調べてみてください。
関連
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] Androidでアプリの共有設定データを削除する方法
-
[解決済み] Android ConstraintLayout - あるビューを別のビューの上に配置する
-
[解決済み] Gmailの3分割アニメーションシナリオの完全動作サンプル?
-
[解決済み] 通知をクリックした後にアプリケーションを開く
-
[解決済み] 複数のフィルタを持つBroadcastReceiverか、複数のBroadcastReceiverか?
-
[解決済み] Receiver not registered exception error?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SDカードからファイルを削除する方法を教えてください。
-
[解決済み] RecyclerView.Stateを使って、RecyclerViewのスクロール位置を保存するには?
-
[解決済み] BottomSheetDialogFragmentの状態をexpandedに設定する。
-
[解決済み] AndroidにおけるViewPager2の適切な実装
-
[解決済み] HttpPostによる画像送信
-
[解決済み] AppCompat-v7 21でアクションバー/ツールバーにアイコンを表示する。
-
[解決済み] 非ActivityクラスでContextを取得する [重複].
-
[解決済み] react nativeアプリのバージョン番号を更新する方法
-
[解決済み] Android Studio: キーの復元ができない
-
[解決済み] Android 6.0でBluetooth Low Energyスキャンを使用するには位置情報を有効にする必要があります。