Я создаю списки с общим предпочтением и когда вызывается метод onPreferenceChanged(), я хочу в какой-то момент извлечь индекс элемента в списке или целочисленное значение. Я пытаюсь создать XML-данные следующим образом:
в массивах:
<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>
в файле настроек 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>
Итак, мой xml не работает. Я знаю, как это сделать, используя строковый массив, а не массив для значений. И я мог бы вытащить строки значений и получить то, что хочу от этого, но я предпочел бы (если возможно) иметь списки, в которых значения были бы ints, booleans или перечислениями. Каков обычный способ сделать это?
спасибо заранее,
Джей