2010-07-25 85 views
30

我有喜好頁面。它具有「顯示信息屏幕」(作爲複選框)字段。android sharedpreferences設置值

我也有信息頁面,也應該有複選框'再次看我'。

正如我明白了,我可以從首選項頁面通過PreferencesManager.getDefaultPreferences(context)值...

但是我應該如何爲信息頁面上的複選框設置首選項值?

我嘗試使用context.getSharedPreferences(PREF_NAME, 0).edit()來設置值,但它與PreferencesManager的對應值沒有關聯。

我該怎麼辦? F1

回答

98

這取決於您是否在應用程序的一組偏好之後,或者每個活動有一組偏好。

我用這樣的代碼:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); 
Editor editor = prefs.edit(); 
editor.putBoolean(PREF_NAME, false); 
editor.commit(); 

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); 
if (prefs.getBoolean(PREF_NAME, true)) { 
    // etc 
} 
+0

非常感謝! – davs 2010-07-25 08:41:45

+4

+1有一個很好的答案。我會強調,「編輯器」不是**等待用戶交互的模態可視化編輯器。這只是一種原子方式,與'SharedPreferences.getString()'相反。 – ef2011 2011-05-09 02:37:27

+0

使用apply()代替commit()會在後臺執行。 – 2016-03-14 13:28:38

相關問題