共有設定でリストを作成しています。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は機能しません。値の配列ではなく、文字列配列を使用してこれを行う方法を知っています。そして、値の文字列を引き出して、そこから必要なものを導き出すことができますが、(可能であれば) 値が int、boolean、または enum であるリストを作成できるようにしたいと考えています。これを行う慣習的な方法は何ですか?
前もって感謝します、
ジェイ