我使用PreferenceManager.setDefaultValues(context,R.xml.preferences,false)
在我的應用程序中設置首選項的默認值,我注意到如果我添加一個新的首選項,那麼我的PreferenceFragment
不會顯示它的默認值,即使是在的preferences.xml ..PreferenceManager.setDefaultValues readAgain參數和新的首選項
設置這是由於我指定readAgain虛假的事實?
我知道我可以簡單地試試看,但我只是想確保readAgain是爲了這個目的,即重新讀取默認值,而不是重新設置用戶設置,而是設置新屬性的默認值。如果這正是readAgain標誌的用途,那麼您是否可以給我一個理由,因爲它不會重置用戶首選項,因此不會始終將readAgain設置爲true?
我想過可能的開銷......我有少於10個的偏好,所以它不應該是一個問題..是否有任何其他方式的監測,如果新的偏好添加,並強制首選只重載在該事件?例如,我可以理解應用程序在更新後第一次啓動的情況嗎?也許我可以使用像* last_version_seen *這樣的優先選項,並在應用程序針對當前版本啓動時進行檢查,並使用* readAgain *設置爲true來觸發優先重新加載,對嗎? –
請參閱[ChangeLog](http://code.google.com/p/android-change-log/)的代碼。該名稱解釋了該組代碼的用法。但是,除此之外,您可以通過爲此設置一個DefaultSharedPreference來實現首次運行檢查。 ;-)。 – Niranjan
@GianniCostanzi讓'readagain'成爲true。如果它只是10個首選項,爲什麼還會有更多的代碼受到影響。這並不是懶惰,只是爲了達到10-20個目標而創建另一個前提是不值得的。 但是如果你喜歡我給你展示的'ChangeLog'庫,那麼在那個文件中加入一點代碼'cl.firstRun()'就在那裏。 :-)。否則,請將其保持爲真。 – Niranjan