下面是我遇到的問題:在我的應用程序中,我有幾個首選項存儲在sharedPreferences中,它們記錄了應用程序的不同設置。這些是一些字符串。因爲我希望應用程序以這些設置的一些默認值開始,所以在onCreate中,我爲每個設置構造一個「設置」對象,在其中檢查相關的sharedPreference是否爲null,如果是這樣,則將默認值置於sharedPreference。ListPreferences的奇怪行爲
Setting(int setting, String default)
{
storedPref=sharedPref.getString(getText(setting),null);
if(storedPref==null)
{
SharedPreferences.Editor edit=sharedPred.edit()
edit.putString(getText(setting),default);
edit.comit
}
}
與這些設置關聯的視圖是ListPreferences()。當第一次打開應用程序時,它們應該顯示一個選項列表,其中選定的選項是默認選項,但是有時候不會選擇任何選項,甚至不選擇默認選項。
listPreferences是通過將數組設置爲「entries tag」和「values tag」來構建的。我不太確定,我應該傳遞給Setting對象的默認構造函數,entries數組的成員還是來自值的某個值!如果我傳遞了一些條目,那麼Listpreferences將會有預期的行爲,其中一些會有上面描述的行爲。如果我不這樣做,並從值數組中傳遞一些東西,同樣的事情發生!有沒有人有任何意識爲什麼這種奇怪的行爲?
是的,但比並不意味着默認將被保存,這正是我所需要的。 – 2010-04-02 15:15:59