2010-09-16 58 views
1

我有一個由XML定義的首選項頁面 - 包括一些默認值。我使用PreferenceActivity來顯示和處理這個頁面。無論何時我使用此頁面設置首選項,文件系統上的首選項文件都會正確更新 - 我可以通過adb查看。爲什麼我的首選項頁面不顯示當前值?

但是,每當我在更改某些設置後返回到設置頁面時,就會顯示默認設置。更糟糕的是,如果我在不更改任何設置的情況下按回來,則會將其全部恢復爲默認設置。

有關我如何獲得首選項以實際顯示當前設置的任何想法?

我由此產生PreferenceActivityis:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    PreferenceManager.getDefaultSharedPreferences(this) 
      .registerOnSharedPreferenceChangeListener(this); 
    setDefaults(this); 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.settings); 
} 

的XML看起來是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <ListPreference 
    android:id="@+id/numberOfYearsList" 
    android:key="numberOfYears" 
    android:title="Number of Years to Read the Bible" 
    android:summary="How many years would you like to take to read through the reading plan?" 
    android:entries="@array/numberOfYears" 
    android:entryValues="@array/numberOfYears" 
    android:dialogTitle="How Many Years?" 
    android:defaultValue="1" 
    /> 
    <CheckBoxPreference android:key="ignoreDates" 
    android:id="@+id/ignoreDatesCheckbox" 
    android:title="Ignore Dates" 
    android:summary="Would you like to use the dates in the plan?" 
    android:defaultValue="false" 
    /> 
</PreferenceScreen> 
+0

您可以展示您如何創建和使用PreferenceActivity? – 2010-09-16 18:56:52

+0

完成 - 參見上文! – 2010-09-16 20:49:14

回答

3

沒關係 - 我做了一個錯誤。正如你從上面看到的,當創建Preference Activity時,我正在調用一個將所有prefs設置爲默認值的方法...... Duh!

相關問題