Android: ListPreference no admite valores int
En mi aplicación, tengo los valores como:
<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" />
Y los datos:
<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>
Pero cuando elijo un valor, la aplicación se bloquea, hay error:
java.lang.NullPointerException at android.preference.ListPreference.onDialogClosed(ListPreference.java:264)
Me pareció que esto es realmente un problema muy antiguo planteado aquí . Y sorprendentemente, Google acaba de decir que no es un error y no hay solución? ¿Alguien tiene sugerencias?
Esto se prueba en Android versión 4.0.
¿Por qué no utilizar una matriz de cadenas y convertir a enteros más tarde ( Integer.valueOf()
), en el código:
<string-array name="font_list_values"> <item>1</item> <item>2</item> <item>3</item> </string-array>
Este error parece envejecer de alguna manera. También me enfrenté a este problema. Sólo use string-array y analizarlos con Integer.valueOf()
.