設定コンポーネントと属性 Android Jetpack の一部。

このトピックでは、設定画面を作成する際によく使用される Preference のコンポーネントと属性の一部について説明します。

Preference のコンポーネント

このセクションでは、Preference の一般的なコンポーネントについて説明します。詳細については、各コンポーネントの対応するリファレンス ページをご覧ください。

Preference のインフラストラクチャ

PreferenceFragmentCompat - Preference オブジェクトのインタラクティブな階層の表示を処理する Fragment

Preference のコンテナ

PreferenceScreen - 設定画面を表す最上位のコンテナ。これは、Preference 階層のルート コンポーネントです。

PreferenceCategory - 類似した Preferences をグループ化するために使用されるコンテナ。PreferenceCategory は、カテゴリのタイトルを表示し、Preferences のグループを視覚的に分類します。

個々の Preference

Preference - 個々の設定を表す基本的なビルディング ブロック。Preference が保持されるように設定されている場合、それに対応する Key-Value ペアが設定されます。この Key-Value ペアによってユーザーが選択した設定が保持されます。この設定にはアプリ内のどこからでもアクセスできます。

EditTextPreference - String 値を保持する Preference。ユーザーが Preference をタップすると、テキスト フィールドを含むダイアログが表示されます。ユーザーはこのダイアログで、保持されている値を変更できます。

ListPreference - 文字列値を保持する Preference。ユーザーは、ラジオボタンとそれに対応するラベルのリストを表示するダイアログで、この値を変更できます。

MultiSelectListPreference - 文字列のセットを保持する Preference。ユーザーは、チェックボックスとそれに対応するラベルのリストを表示するダイアログで、これらの値を変更できます。

SeekBarPreference - 整数値を保持する Preference。この値は、Preference レイアウトに表示される、対応するシークバーをドラッグすることによって変更できます。

SwitchPreferenceCompat - ブール値を保持する Preference。この値は、対応するスイッチ ウィジェットを操作するか、Preference レイアウトをタップすることによって変更できます。

CheckBoxPreference - ブール値を保持する Preference。この値は、対応するチェックボックスを操作するか、Preference レイアウトをタップすることによって変更できます。

Preference の属性

Preference の外観と動作の設定によく使用される属性の一部を以下に示します。

一般的な属性

title

Preference のタイトルを表す String 値。

例: app:title="Title"

summary

Preference のサマリーを表す String 値。

例: app:summary="Summary"

icon

Preference のアイコンを表す Drawable

例: app:icon="@drawable/ic_camera"

key

関連する Preference 値の保持に使用されるキーを表す String 値。キーを使用すると、実行時に Preference をきめ細かくカスタマイズできます。 個々の Preference のキーは階層内で設定する必要があります。

例: app:key="key"

enabled

ユーザーが Preference を操作できるかどうかを示すブール値。この値が false の場合、Preference はグレー表示され、ユーザーが操作することはできなくなります。デフォルト値は true です。

例: app:enabled="false"

selectable

ユーザーが Preference を操作できるかどうかを示すブール値。デフォルト値は true です。

例: app:selectable="false"

isPreferenceVisible

Preference または Preference カテゴリが表示可能かどうかを示すブール値。これは、setVisible() を呼び出すのと同じです。

例: app:isPreferenceVisible="false"

defaultValue

Preference のデフォルト値を表します。この値は、Preference 用に保持されている値が他にない場合に設定され、保持されます。値の型は、関連する Preference によって異なります。

例: app:defaultValue="true"

dependency

この Preference の状態を制御する SwitchPreferenceCompat のキーを表します。対応するスイッチがオフになると、Preference は無効になり、変更できなくなります。

例: app:dependency="parent"

PreferenceCategory の属性

initialExpandedChildrenCount

拡張可能な Preference の動作を有効にする整数値。この値は、PreferenceGroup に表示する子の最大数を表します。この数を超える子はすべて折りたたまれますが、展開ボタンをタップすると表示できます。デフォルトではこの値は Integer.MAX_VALUE で、すべての子が表示されます。

警告: この属性を使用する場合は、必ず PreferenceCategory でキーを設定してください。そうすることで、構成の変更(画面の回転など)の際に、状態の保存と復元が正しく行われるようになります。

例: app:initialExpandedChildrenCount="0"

ListPreference と MultiSelectListPreference の属性

entries

ユーザーに表示されるリストエントリに対応する文字列の配列。それぞれの値は、内部的に保持されている値の配列へのインデックスによって対応付けられます。たとえば、ユーザーがリストの最初のエントリを選択すると、対応する値配列の最初の要素が保持されます。

例: app:entries="@array/entries"

警告: 両方の配列の長さが同じであることと、各配列のインデックスがエントリと値の正しいペアに一致することを確認してください。

entryValues

保持するエントリの配列。それぞれの値は、ユーザーに表示されるリストエントリの配列へのインデックスによって対応付けられます。

例: app:entryValues="@array/values"