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