ANDROID首选项列表首选项动态更改值

时间:2012-07-08 00:05:52

标签: android preferences listpreference

我正在尝试更改列表首选项的入门值,具体取决于是否勾选了复选框...

    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

1 个答案:

答案 0 :(得分:2)

您遇到的一个问题是您如何引用数组值。 @array/newsfeed用于XML文件,而不是Java!

您可能想要使用getResources().getStringArray(R.array.newsfeed)或类似内容。 Source

另一个问题是setEntryValues()未定义Preferences,您需要初始化为ListPreference