我尝试在这里和谷歌上搜索答案,但没有成功。
我正在尝试listPreference
在 Android 平台上允许用户选择他们的文本颜色。目前它只返回默认值,我不太确定为什么我的 if/else 语句不起作用。
首选项.xml:
<ListPreference
android:title="textcolorpreference"
android:key="list1"
android:summary="Text Color"
android:entries="@array/list"
android:entryValues="@array/lValues"
/>
数组.xml:
<string-array name="list">
<item>Red</item>
<item>Green</item>
<item>Blue</item>
<item>Yellow</item>
</string-array>
<string-array name="lValues">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>
爪哇:
SharedPreferences getPrefs =
PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String values = getPrefs.getString("list", "2");
if(values.contentEquals("1")){
tp.setColor(Color.RED);
} else if(values.contentEquals("2")){
tp.setColor(Color.GREEN);
} else if(values.contentEquals("3")){
tp.setColor(Color.BLUE);
}else if(values.contentEquals("4")){
tp.setColor(Color.YELLOW);
}
目前只有列表首选项的默认值有效,例如,如果我将 listPreference 默认值设置为String values = getPrefs.getString("list", "2")
我得到的color.GREEN
,这让我认为我需要添加一个首选项更改的侦听器,但我目前无法实现它。
对于你们能够提供的任何帮助,我将不胜感激!