設定コンポーネントと属性 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"