Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

Preference

デバイス ストレージの操作や UI の管理なしで、インタラクティブな設定画面を構築します。
最新の更新 現在の安定版リリース 次のリリース候補 ベータ版リリース アルファ版リリース
2020 年 4 月 15 日 1.1.1 - - -

依存関係の宣言

Preference への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

    dependencies {
        def preference_version = "1.1.1"

        // Java language implementation
        implementation "androidx.preference:preference:$preference_version"
        // Kotlin
        implementation "androidx.preference:preference-ktx:$preference_version"
    }
    

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.1.1

バージョン 1.1.1

2020 年 4 月 15 日

androidx.preference:preference:1.1.1androidx.preference:preference-ktx:1.1.1 がリリースされました。バージョン 1.1.1 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • FragmentContainerView を xml からインフレートするときに、PreferenceDialogFragmentCompatIllegalStateException をスローしなくなりました。(b/150051716

依存関係の更新

  • Preference が Fragment 1.2.4に依存するようになりました。(aosp/1277317
  • preference-ktx 依存関係が androidx.core:core-ktx:1.1.0androidx.fragment:fragment-ktx:1.2.4 に依存するようになりました。メインの preference アーティファクトの依存関係をミラーリングし、preference-ktx をアップグレードすることで推移的な依存関係のメインのアーティファクトと -ktx のアーティファクトの両方が確実に更新されるようになりました。(aosp/1277319

バージョン 1.1.0

バージョン 1.1.0

2019 年 9 月 5 日

androidx.preference:preference:1.1.0androidx.preference:preference-ktx:1.1.0 がリリースされました。このバージョンに含まれるコミットについては、こちらをご覧ください。

1.1.* リリースに初めてアップデートする場合は、最新の安定版リリースである 1.0.0 以降に行われた重要な変更について、下記の簡単な説明をご確認ください。設定ガイドサンプルアプリAndroid Dev Summit の講演でも、役に立つ情報を見つけることができます。

1.0.0 以降の重要な変更

  • フレームワーク Fragments を使用する PreferenceFragment などのクラスのサポートが終了しました。代わりに、PreferenceFragmentCompat などの *compat クラスを使用する必要があります。
  • Preference が更新されたとき、またはユーザーが Preference を参照できるようになったときに、サマリーが動的に設定されるように Preference の SummaryProvider を設定できるようになりました。詳しくは、ガイドをご覧ください。
  • EditTextPreference.OnBindEditTextListener インターフェースが追加されました。これにより、ダイアログがバインドされた後に対応するダイアログに表示される EditText をカスタマイズできるようになりました。AndroidX ライブラリでサポートされていない EditTextPreferenceandroid:inputType などの属性を直接使用する代わりに、この方法を使用できます。詳しくは、ガイドをご覧ください。
  • Preference.setCopyingEnabled() が追加されました。有効に設定されている場合に [Preference] を長押しすると、コンテキスト メニューが表示され、Preference のサマリーをコピーできるようになります。
  • Material の仕様と一致するように SeekBarPreference のスタイルが更新されました。SeekBarPreference のその他の変更について詳しくは、変更履歴をご覧ください。
  • さまざまなバグの修正、スタイルの更新、API レベルの互換性の修正、一般的な QOL の改善が行われました。

バージョン 1.1.0-rc01

2019 7 月 2 日

androidx.preference:preference:1.1.0-rc01androidx.preference:preference-ktx:1.1.0-rc01 がリリースされました。このバージョンに含まれるコミットについては、こちらをご覧ください。

API の変更

  • Preference#onInitializeAccessibilityNodeInfo のサポート終了
  • このメソッドは、特定の Preference のユーザー補助ノード情報をプロキシしていましたが、これは、このカスタマイズにとって不適切なレイヤです。ユーザー補助情報を調整する場合は、代わりに onBindViewHolder をオーバーライドして、ユーザー補助情報をビューに直接追加する必要があります。

バージョン 1.1.0-beta01

2019 年 6 月 5 日

androidx.preference:preference:1.1.0-beta01androidx.preference:preference-ktx:1.1.0-beta01 がリリースされました。このバージョンに含まれるコミットについては、こちらをご覧ください。

1.1.0 以降の重要な変更

1.1.* リリースに初めてアップデートする場合は、最新の安定版リリースである 1.1.0 以降に行われた重要な変更について、下記の簡単な説明をご確認ください。設定ガイドサンプルアプリAndroid Dev Summit の講演でも、役に立つ情報を見つけることができます。

  • フレームワーク Fragments を使用する PreferenceFragment などのクラスのサポートが終了しました。代わりに、PreferenceFragmentCompat などの *compat クラスを使用する必要があります。
  • Preference が更新されたとき、またはユーザーが Preference を参照できるようになったときに、サマリーが動的に設定されるように Preference の SummaryProvider を設定できるようになりました。詳しくは、ガイドをご覧ください。
  • EditTextPreference.OnBindEditTextListener インターフェースが追加されました。これにより、ダイアログがバインドされた後に対応するダイアログに表示される EditText をカスタマイズできるようになりました。AndroidX ライブラリでサポートされていない EditTextPreference で android:inputType などの属性を直接使用する代わりに、この方法を使用できます。詳しくは、ガイドをご覧ください。
  • Preference.setCopyingEnabled() が追加されました。有効に設定されている場合に [Preference] を長押しすると、コンテキスト メニューが表示され、Preference のサマリーをコピーできるようになります。
  • Material の仕様と一致するように SeekBarPreference のスタイルが更新されました。SeekBarPreference のその他の変更について詳しくは、変更履歴をご覧ください。
  • さまざまなバグの修正、スタイルの更新、API レベルの互換性の修正、一般的な QOL の改善が行われました。

1.1.0-alpha05 以降の API の変更

  • getOnBindEditTextListener が公開 API から削除されました。この API を操作する場合にのみ、setOnBindEditTextListener を使用する必要があります。

問題や新機能に関するご提案がありましたら、こちらからご報告ください。

バージョン 1.1.0-alpha05

2019 年 5 月 7 日

androidx.preference:preference:1.1.0-alpha05androidx.preference:preference-ktx:1.1.0-alpha05 がリリースされました。このバージョンに含まれるコミットについては、こちらをご覧ください。

新機能

  • 選択できない Preference のスタイルが更新されました。タイトルとサマリーに同じ色が使われるようになり、操作できないこと、情報表示専用であることがわかりやすくなりました。
  • 注: 選択できない Preference に enableCopying="true" を追加することをご検討ください。こうすることで、長押しでサマリーをコピーできるようになります。

バグの修正

  • PreferenceCategory などの選択できない Preference が選択されたときに波紋効果が適用されるバグを修正しました。
  • TalkBack で DropDownPreference がクリック可能なアイテムとして表示されないユーザー補助機能の問題を修正しました。
  • RTL レイアウトに関する問題を修正しました。
  • PreferenceFragmentCompat の一部の null 可能性アノテーションを Fragment と一致するように更新しました。

バージョン 1.1.0-alpha04

2019 年 3 月 13 日

androidx.preference:preference:1.1.0-alpha04androidx.preference:preference-ktx:1.1.0-alpha04 がリリースされました。このバージョンに含まれるコミットの完全なリストについては、こちらをご覧ください。

新機能

SeekBarPreference が更新されました。

  • Material の仕様と一致するようにスタイルが更新されました。
    • 値ラベルがデフォルトで非表示になりました。ただし、app:showSeekBarValue="true" または setShowSeekBarValue(true) を使用すると引き続き表示できます。このラベルは Material の仕様に含まれていませんが、使用されることが多いため、今後もサポートする予定です。ただし、このラベルの使用は推奨されません。
    • SeekBar のドラッグ中(離したときではない)に値ラベルが更新されるようになりました。ただし、値が内部的に更新されるわけではないことに注意してください。この機能を有効にする新しい API については、下記をご覧ください。
    • 注: SeekBarPreference でのサマリーの設定はサポートされていますが、このような設定は想定されておらず、Material の仕様に含まれていないため、行わないでください。
  • 継続的な更新に対するサポートを追加することで、SeekBar のドラッグ中に SeekBar の保存済みの値を更新できるようになります。この機能は XML(app:updatesContinuously="true")またはプログラム(setUpdatesContinuously(true))で有効にすることができ、画面上で SeekBar の位置が変更されたときに実行されます。

API の変更

  • 不足している null 可能性アノテーションを findPreference() に追加しました。

バグの修正

  • コピー機能が有効化されていない場合にコンテキスト メニューのリスナーが正しく削除されないバグを修正しました。

バージョン 1.1.0-alpha03

2019 年 2 月 7 日

androidx.preference:preference 1.1.0-alpha03

以下の変更を反映した androidx.preference:preference 1.1.0-alpha03androidx.preference:preference-ktx 1.1.0-alpha03 がリリースされました。

バグの修正

  • コピー / 貼り付けのポップアップが EditTextPreference のダイアログに表示されないことがある問題を修正しました。
  • 基盤となるアダプターが適切に登録解除されず、特定の条件下でメモリリークが発生する問題を修正しました。(b/121006469
  • 設定の変更時に発生するダイアログ関連のクラッシュを修正しました。(b/122167543
  • SummaryProvider が MultiSelectListPreference で動作しない問題を修正しました。(b/123022772

バージョン 1.1.0-alpha02

2018 年 12 月 17 日

最近更新された設定ガイドサンプルアプリもご確認ください。

新機能

  • EditTextPreference.OnBindEditTextListener インターフェースが追加されました。これにより、ダイアログがバインドされた後で、対応するダイアログに表示される EditText をカスタマイズできるようになりました。たとえば、カスタムの入力タイプや長さを設定する、または TextWatcher を追加することができます。

  • Preference.setCopyingEnabled() が追加されました。有効に設定されている場合に [Preference] を長押しすると、コンテキスト メニューが表示され、Preference のサマリーをコピーできるようになります。このメソッドを使用すると、静的な情報(ユーザー固有の ID、アプリのバージョン情報など)をコピーできます。

  • preferenceTheme がアクティビティのテーマに適用されました。これにより、コードから Preference を作成する際に、PreferenceManager#getContext() のコンテキストを使用する必要がなくなり、Fragment または Activity のコンテキストを使用するだけで済むようになりました。

API の変更

  • findPreference() がリファクタリングされ、<T extends Preference> を返すようになりました。これにより、findPreference() を使用する際に、Preference を明示的にキャストする必要がなくなりました。たとえば、EditTextPreference preference = findPreference(“edit_text”) は、現在は有効なコードです。

バージョン 1.1.0-alpha01

2018 年 11 月 5 日

新機能

  • Preference が更新されたとき、またはユーザーが Preference を参照できるようになったときに、Preference の SummaryProvider を設定することにより、サマリーを動的に設定できるようになりました。
  • ListPreference と EditTextPreference に対するデフォルトの SummaryProvider 実装が追加されました。この実装が設定されている場合、Preference のサマリーが自動的に更新され、保存済みの値が反映されます。値が保存されていない場合は、「Not Set」が設定されます。この実装を設定するには、app:useSimpleSummaryProvider=”true” のように指定します。
  • PreferenceGroup#removePreferenceRecursively が追加されました。このメソッドは、Preference を再帰的に検索して、該当グループまたは階層内の下位にあるネストされたグループから削除します。

API の変更

  • フレームワーク Fragments を使用する PreferenceFragment などのクラスのサポートが終了しました。代わりに、PreferenceFragmentCompat などの compat クラスを使用する必要があります。

バグの修正

  • iconSpaceReserved が PreferenceCategories と正しく連携しない問題を修正しました。
  • API 21 未満で PreferenceCategories がタイトルの色に colorAccent を使用しない問題を修正しました。
  • API 21 未満における SeekBarPreference レイアウトの不整合を修正しました。