Android: ListPreference не может поддерживать значения int

В моем приложении у меня есть такие значения, как:

<ListPreference android:key="font_setting" android:title="@string/font" android:summary="%s" android:entries="@array/font_list" android:entryValues="@array/font_list_values" android:dialogTitle="@string/choose_font" /> 

И данные:

 <string-array name="font_list"> <item>"Small"</item> <item>"Medium"</item> <item>"Big"</item> </string-array> <integer-array name="font_list_values"> <item>1</item> <item>2</item> <item>3</item> </integer-array> 

Но когда я выбираю одно значение, приложение падает, появляется ошибка:

 java.lang.NullPointerException at android.preference.ListPreference.onDialogClosed(ListPreference.java:264) 

Я обнаружил, что на самом деле это очень старая проблема, поднятая здесь . И удивительно, Google просто сказал, что это не ошибка, и нет никаких проблем? У кого есть предложения?
Это протестировано в версии 4.0 для Android.

Почему бы не использовать строковый массив и преобразовать в целые числа позже ( Integer.valueOf() ), в коде:

 <string-array name="font_list_values"> <item>1</item> <item>2</item> <item>3</item> </string-array> 

Кажется, что эта ошибка стареет. Я также столкнулся с этой проблемой. Просто используйте строковый массив и проанализируйте их с помощью Integer.valueOf() .