【Androidアプリケーションの設定画面を作ろう】MultiSelectListPreferenceを使う

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

MultiSelectListPreferenceは複数の選択肢をリストから複数選択する設定項目を表すクラスです。
ユーザーがクリックするとダイアログを持つリストが表示され、ユーザーが複数選択することができます。
MultiSelectListPreferenceは文字列配列と値配列二つの配列を設定して使用します。二つの配列の同一順番が一対一で対応しています。 片方でも設定していないとクリックした時に例外が発生し強制終了します。
また、二つの配列の要素数は揃っていることが望ましく、値配列の要素数が文字列配列の要素数よりも少ない場合は選択肢をクリックした時に例外が発生します。
ダイアログのOKボタンをクリックすると値配列の内容が文字列配列としてプリファレンスに保存されます。
android:entries選択肢の文字列配列を設定します。アレイリソースIDで指定することができます。dialogMessagを設定するとリストが表示されないので注意しましょう。
android:entryValues選択肢の値配列を設定します。アレイリソースIDで指定することができます。
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="week_text" >
        <item>月曜日</item>
        <item>火曜日</item>
        <item>水曜日</item>
        <item>木曜日</item>
        <item>金曜日</item>
        <item>土曜日</item>
        <item>日曜日</item>
    </string-array>

    <string-array name="week_value" >
        <item>1</item>
        <item>2</item>
        <item>3</item>
        <item>4</item>
        <item>5</item>
        <item>6</item>
        <item>7</item>
    </string-array>
</resources>

    <MultiSelectListPreference
        android:title="MultiSelectListPreference"
        android:dialogTitle="MultiSelectListPreference title"
        android:entries="@array/week_text"
        android:entryValues="@array/week_value" />