2012-07-23 235 views
0

我有一個擴展PreferenceActivity的設置類。我在相應的preferences.xml中有一個複選框首選項。默認值是false。但是,我在運行期間將其設置爲true,並且在應用程序啓動時將該值設置爲true。我需要它在每次應用程序啓動時採用默認值爲false。這不應該是默認行爲?默認值不反映 - 共享首選項

+1

如果你很難卸載應用程序,然後重新安裝它,它是假的?如果是這樣,這是預期的行爲。改變偏好應該保存它的價值以備後用;如果以前沒有設置,則僅使用默認值。 – Eric 2012-07-23 04:26:10

+0

是的,我卸載它並嘗試。這是假的。原來如此。謝謝! – Namratha 2012-07-23 04:53:25

回答

1

按在OP評論:

PreferencesActivity節省供以後在應用程序使用偏好的每個項目。這些值在退出後也會保留。如果以前沒有設置首選項,則僅顯示「默認」值,這意味着您的值將只有false,直到有人將其設置爲true。他們以後可以將其更改回false,但它不會再使用默認值。

要重置爲默認值,應用程序必須卸載並重新安裝(或通過應用程序管理器清除其數據)。

+0

我在PreferenceActivity中有一個首選項。點擊這個偏好我開始一個ListActivty結果。將這個選擇的ListItem(以及它將採用什麼值?顯示文本?)自動寫入SharedPreferences中? – Namratha 2012-09-03 03:50:16

+0

當你設置'Preference'時,你使用了XML並給它一個'android:key'值,你不是嗎?這應該是它保存下來的關鍵。是的,它應該被自動保存。 – Eric 2012-09-03 04:53:46

+0

這就是我的想法,但在onCreate,當我嘗試訪問該值,如:mCurrentTrack = mSharedPreferences.getString(「MusicTrack」,null);我總是在mCurrentTrack中得到一個空值。你爲什麼這麼認爲?價值似乎並沒有持續下去。 – Namratha 2012-09-03 06:01:45