Arriver entier ou des valeurs de l'indice à partir d'une liste de préférences

Je suis la création de listes dans un partage des préférences et lorsque le onPreferenceChanged() la méthode est appelée je veux extraire l'index de l'élément dans la liste ou une valeur entière dans certains cas. Je suis en train de construire les données xml comme suit:

dans les tableaux:

<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>

dans les préférences de fichier 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>

Donc mon xml ne fonctionne pas. Je sais comment le faire à l'aide d'un string-array plutôt qu'un tableau pour les valeurs. Et je pourrais sortir des chaînes de valeur et en tirer ce que je veux partir, mais je préfère (si possible) être en mesure d'avoir des listes où les valeurs étaient entiers, des booléens ou des enums. Quelle est la façon habituelle de faire cela?

merci d'avance,

Jay

InformationsquelleAutor jbww | 2011-03-08