びぃえるくぅと。

ガラケーは打楽器。

【Android】 ListPreferenceのentryValuesにinteger-arrayは使えない?

結局ブログ放置気味なので、本当に備忘録みたくちょこまかと記事更新していこうと思って第一弾がこれです。

AndroidのPreference(設定画面のパーツのクラス?)の中にListPreferenceという、多数の項目からラジオボタンで選択するタイプのものがありますが、それの項目設定で少し詰みました。

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">
    <ListPreference
        android:key="pref_list"
        android:title="@string/pref_list_title"
        android:dialogTitle="@string/pref_list_title"
        android:entries="@array/pref_list_entries"
        android:entryValues="@array/pref_list_entryValues"/>
</PreferenceScreen>

ここで、@array/pref_list_entryValuesinteger-arrayです。この状態で設定項目を選択するとNullPointerExceptionがおきます。

。。。結局は下のStackoverflowの質問で解決しました。回答者は「Arrayなアイテムしか受け付けない」と書いてますね。

ListPreference: use string-array as Entry and integer-array as Entry Values doesn't work - Stackoverflow

なので上記のandroid:entryValuesに入れる配列もstring-arrayに変更したところエラーは起きなくなってます。

ちなみに何がNullなのかはよく分かりませんが、どうやらListPreferenceクラスの中で選択アイテムを格納する配列があり、それがNullになってるのかな。。?

Copyright © 2015 Yadex205