【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_entryValues
はinteger-array
です。この状態で設定項目を選択するとNullPointerException
がおきます。
。。。結局は下のStackoverflowの質問で解決しました。回答者は「Arrayなアイテムしか受け付けない」と書いてますね。
なので上記のandroid:entryValues
に入れる配列もstring-array
に変更したところエラーは起きなくなってます。
ちなみに何がNull
なのかはよく分かりませんが、どうやらListPreferenceクラスの中で選択アイテムを格納する配列があり、それがNullになってるのかな。。?