【Androidアプリケーションの設定画面を作ろう】Preferenceの基本的な使い方

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

Preferenceはすべての設定項目の基礎となるクラスです。
そのため、このクラス自体を実際に使うことはありませんが、たくさんの重要な機能が定義されています。
Preferenceをxmlファイルのタグとして使い、属性を設定することで「見た目」・「プリファレンスとの連携」・「動き」を変更することができます。

Preferenceの見た目を変更する

PreferenceにデフォルトではTextViewが2つとImageViewが1つの配置されています。
これらのViewの内容はxmlの属性で設定することができます。
android:titleタイトルを設定します。文字列や文字リソースIDを指定することができます。
android:singleLineTitleタイトルの行数を一行に制限します。true/falseが設定でき、デフォルトではtrueが設定されています。
android:summary簡易説明を設定します。文字列や文字リソースIDを指定することができます。
android:iconアイコンを設定します。画像リソースIDを指定することができます。
android:iconSpaceReservedアイコンが設定されない場合に、アイコンの表示領域を確保するかどうかを設定します。true/falseが設定でき、trueの場合はアイコンが表示されない時もアイコンの領域が確保されます。falseの場合はImageViewにGONEが設定され領域が確保されません。デフォルトではfalseが設定されています。
    <Preference
        android:title="title"
        android:singleLineTitle="false"
        android:summary="summary"
        android:icon="@mipmap/ic_launcher"
        android:iconSpaceReserved="true" />

プリファレンスと連携する

Preferenceにはプリファレンスと連携するための属性があります。
android:keyプリファレンスに保存する際のキーを設定します。文字列や文字リソースIDが指定できます。
android:defaultValueプリファレンスに値が保存されていない時にデフォルトで指定する値を設定します。
android:persistentプリファレンスの値として保存するがどうかを設定します。trueの場合は値が保存され、falseの場合は保存されません。デフォルトではtrueが設定されています。
    <Preference
        android:key="key_1"
        android:defaultValue="true"
        android:persistent="false"/>

まとめ

今回はPreferenceを使うための基本的な属性について説明しました。
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <Preference
        android:title="title"
        android:singleLineTitle="false"
        android:summary="summary"
        android:icon="@mipmap/ic_launcher"
        android:iconSpaceReserved="true" />
</PreferenceScreen>