コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

Androidアプリ入門 No.46 PreferencesActivityのListPreference

PreferencesActivity

ListPreference

ListPreferenceはその名前の通り、一覧から選択するPreferenceである。ListPreferenceの主な属性は以下になる。

属性 内容
entries 表示されるエントリー。
entryValues 選択されたときに保管される値。

まず、entriesとentryValuesをstrings.xmlに設定する。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MainActivity!</string>
    <string name="app_name">ActivityTest</string>
    
    <array name="aiueoEntries">
        <item>あいうえお</item>
        <item>かきくけこ</item>
        <item>さしすせそ</item>
        <item>たちつてと</item>
        <item>なにぬねの</item>
        <item>はひふへほ</item>
        <item>まみむめも</item>
        <item>や ゆ よ</item>
        <item>らりるれろ</item>
        <item>わをん  </item>
    </array>
    <array name="aiueoEntryValues">
        <item>a</item>
        <item>ka</item>
        <item>sa</item>
        <item>ta</item>
        <item>na</item>
        <item>ha</item>
        <item>ma</item>
        <item>ya</item>
        <item>ra</item>
        <item>wa</item>
    </array>
</resources>

次に、preferences.xmlを以下のようにする。strings.xmlで設定したarrayをentriesとentryValuesに割り当てている。

<PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android">
    <ListPreference
        android:key="list"
        android:dialogTitle="選択してください"
        android:entries="@array/aiueoEntries"
        android:entryValues="@array/aiueoEntryValues"
        android:title="何か選択してください"
        android:summary="ひらがなの選択" />
</PreferenceScreen>

実行結果は以下。

上記のように「まみむめも」を選択した後、以下のように「ma」と保管されているのが確認できる。

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="list">ma</string>
</map>