我正在尝试更改列表首选项的入门值,具体取决于是否勾选了复选框...
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);{
if(sharedPrefs.getBoolean("french", false))
{
Preference newsPref = (Preference) findPreference("news_feed");
newsPref.setDefaultValue("@array/newsfeedfr");
}
else
{
Preference newsPref = (Preference) findPreference("news_feed");
newsPref.setEntryValues("@array/newsfeed");
}
}
我在.setEntryValue上遇到错误:
The method setEntryValues(String) is undefined for the type Preference
答案 0 :(得分:2)
您遇到的一个问题是您如何引用数组值。 @array/newsfeed
用于XML文件,而不是Java!
您可能想要使用getResources().getStringArray(R.array.newsfeed)
或类似内容。 Source
另一个问题是setEntryValues()
未定义Preferences
,您需要初始化为ListPreference
。