Preferences アクティビティで List Preference を作成しましたが、コードが選択した項目に対して返す値は、EntryValues の値ではなく Entry の値です。
例:
エントリ: David New
値: DAVIDNEW.TTF
このコードは、「 DAVIDNEW.TTF 」ではなく「 David New 」を返します。
コードは次のとおりです。
ファイルpreferences.xml
:
<ListPreference
android:key="fontSelect"
android:title="@string/textPrefs"
android:summary="@string/textPrefs"
android:defaultValue="DAVIDNEW.TTF"
android:entries="@array/fonts"
android:entryValues="@array/fontsValues" />
ファイルarrays.xml
:
<string-array name="fonts">
<item>Alex</item>
<item>Cardo</item>
<item>Chaya</item>
<item>David New</item>
<item>Droid Sans</item>
<item>Frank</item>
<item>Mike Hebrew</item>
</string-array>
<string-array name="fontsValues">
<item>ALEX.TTF</item>
<item>Cardo99s.ttf</item>
<item>CHAYA.TTF</item>
<item>DAVIDNEW.TTF</item>
<item>DroidSansHebrew.ttf</item>
<item>frank.ttf</item>
<item>mike_hebrew_regular_v33.ttf</item>
</string-array>
ファイルreader.java
:
String f1 = new String(myprefs.getString("fontSelect", "DAVIDNEW.TTF"));
font = Typeface.createFromAsset(getAssets(), f1);
tv.setTypeface(font);
の値は" DAVIDNEW.TTF "ではなくf1
" David New "です。