2015-04-03 33 views
1

更新的默認值是我實現偏好沒有反映從XML文件中下面的android

<resources> 
    <bool name="mypreference_default">true</bool> 
</resources> 

當我改變值從truefalsefalsetrue,我的應用程序不會無法得到更新值。我如何檢索更新的值?下面是我的實現:

<CheckBoxPreference 
    android:defaultValue="@bool/mypreference_default" 
    android:key="mypreference" 
    android:title="@string/mypreference_title" /> 

而且

SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context); 
Boolean value = context.getResources().getBoolean(R.bool.mypreference_default); 
Boolean b = p.getBoolean("mypreference", value); 
+0

你確定你沒有價值爲此偏好設置?默認值僅適用於未設置值的情況。您可以在重新安裝前徹底卸載應用程序,或清除所有應用程序數據。 – 2015-04-03 09:15:20

+0

你在哪裏更新首選項,請發佈該代碼。更新時可能有一些錯誤。 – 2015-04-03 09:23:45

回答

0

你好,你必須先設置默認的OnCreate您的活動方法:

@Override 
    protected void onCreate() 
    { 
     PreferenceManager.setDefaultValues(this, R.xml.preferences, false); 
     SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
     boolean autoStart = sharedPreferences.getBoolean("mypreference", true); 

    {...} 
    } 
+0

你必須不做這樣的事情,問題清楚地表明默認值是在preference.xml文件中指定的。 – 2015-04-03 09:16:52