Estoy creando listas en una preferencia compartida y cuando se llama al método onPreferenceChanged() Deseo extraer el índice del elemento en la lista o un valor entero en algunos casos. Estoy tratando de construir los datos XML de la siguiente manera:Obteniendo valores enteros o de índice de una preferencia de lista
en las matrices:
<string-array name="BackgroundChoices">
<item>Dark Background</item>
<item>Light Background</item>
</string-array>
<array name="BackgroundValues">
<item>1</item>
<item>0</item>
</array>
<string-array name="SpeedChoices">
<item>Slow</item>
<item>Medium</item>
<item>Fast</item>
</string-array>
<array name="SpeedValues">
<item>1</item>
<item>4</item>
<item>16</item>
</array>
en el archivo de preferencias xml:
<PreferenceScreen android:key="Settings"
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="Settings">
<ListPreference
android:key="keyBackground"
android:entries="@array/BackgroundChoices"
android:summary="Select a light or dark background."
android:title="Light or Dark Background"
android:positiveButtonText="Okay"
android:entryValues="@array/BackgroundValues"/>
<ListPreference
android:key="keySpeed"
android:entries="@array/SpeedChoices"
android:summary="Select animation speed."
android:title="Speed" android:entryValues="@array/SpeedValues"/>
</PreferenceScreen>
Así que mi xml no funciona. Sé cómo hacer esto usando una matriz de cadenas en lugar de una matriz para los valores. Y podría extraer las cadenas de valor y obtener lo que quiero de eso, pero preferiría (si fuera posible) poder tener listas donde los valores fueran enteros, booleanos o enumeraciones. ¿Cuál es la forma habitual de hacer esto?
gracias de antemano,
Jay
Bueno, eso es un poco molesto. – theblang