2012-07-08 47 views
1

我試圖改變依賴於閹一個複選框被選中或不listpreference的entryvalue ...ANDROID首名單偏好變化值動態

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 

回答

2

你有一個問題是你如何引用你的數組值。 @array/newsfeed用於XML文件,而不是Java!

您可能要使用getResources().getStringArray(R.array.newsfeed)或類似的。 Source

另一個問題是,setEntryValues()不是爲Preferences定義,你需要初始化爲ListPreference代替。

+0

我將代碼更改爲此http://pastebin.com/Dy5LSASd,並且我得到了空指針異常行24(在pastebin上,這是第10行) – SquiresSquire 2012-07-08 00:33:55

+0

'getDefaultSharedPreferences'是Context的一種方法,而不是'Preference'。你也錯過了'getResources()。getStringArray()'。 – Estel 2012-07-08 00:41:58

+0

改變了它,但仍然崩潰http://pastebin.com/hfxtAhz6 – SquiresSquire 2012-07-08 00:50:15