我想將SharedPreference從Boolean更改爲String。默認值爲true,將被「啓用」。這不是問題,因爲它會自動設置。但是,我怎樣才能檢查它是否設置爲false,然後將新的preferece設置爲「disabled」?在應用程序更新過程中是否有一種方法可以遷移此首選項? 如果我不遷移它,在更新過程中,此首選項的狀態會丟失...如何在更新期間遷移SharedPreferences?
1
A
回答
0
您可以在第一個打開的活動中添加一個簡單方法,以便爲您更新首選項值。此外,添加一個檢查,以便它只執行第一次。
3
SharedPreferences preferences = // obtain it
String pref;
try {
pref = preferences.getString("yourPref", "enabled");
} catch (ClassCastException e) {
// this means the pref is stored as a boolean
boolean boolPref = preferences.getBoolean("yourPref", true);
// store it instead as a String
pref = boolPref ? "enabled" : "disabled";
preferences.edit().remove("yourPref").putString("yourPref", pref).commit();
}
相關問題
- 1. 將SharedPreferences遷移到新的SharedPreferences
- 2. 如何更新新的遷移更改?
- 3. 如何在遷移期間在Devise中創建新用戶
- 4. 遷移後在數據庫更新期間選擇config.json版本
- 5. Yii遷移更新
- 6. 遷移期間更新列值時的空值
- 7. 遷移期間的POSKeyError
- 8. 遷移期間出錯
- 9. 如何使遷移更新表RAILS
- 10. Laravel遷移更改/更新
- 11. 實體框架遷移:在遷移期間超時SqlException
- 12. 遷移網站 - 在遷移期間保持數據庫同步
- 13. Rake在postgresql遷移期間中止
- 14. sequelize postgresql更新遷移
- 15. 遷移更新Laravel 5
- 16. Flyway遷移更新架構
- 17. 遷移問題更新MySQL
- 18. 如何在遷移期間控制創建字段的順序
- 19. 實體框架:在遷移期間如何升級或降級
- 20. 遷移到mariadb後遷移期間的錯誤
- 21. 如何在動畫期間更新UIWebView?
- 22. Mysql,數據庫/服務器之間的數據遷移(稍後通過定期更新遷移)
- 23. 在knex遷移中運行更新
- 24. 在軌/遷移更新機型
- 25. 如何在新版本中遷移NSUserDefaults?
- 26. SharedPreferences在onResume中未更新()
- 27. 如何刷新在sharedPreferences
- 28. Rails新遷移不更新舊數據
- 29. 數據遷移期間的Django-SouthErrorError
- 30. WebForms到ASP.NET之間的遷移期MVC
應用程序更新後沒有調用方法嗎?每次運行代碼似乎都不是那麼優雅.... – agrajag
不,我不認爲有更新後專門調用的方法。但是,只有在密鑰存在的情況下(即第一次在更新後運行應用程序時),您纔可以運行代碼來更新sharedPrefs,然後在添加新的String Pref後刪除該密鑰。隨後的每一次,由於密鑰不存在,更新代碼將不會運行。 –