我在 SharedPreferences
中保存了一个 float
值。在进行一些设计更改后,我尝试将其保存为 int
,但我收到了 ClassCastException
。当我尝试加载该值时抛出异常。
有问题的行:preferences.getInt(myKey, myDefaultValue)
更改自:preferences.getFloat(myKey, myDefaultValue)`
是否有一种安全的方法可以从该键加载并覆盖该值,而无需清除缓存?或者我需要创建一个全新的 key 吗?
最佳答案
您应该首先从首选项中删除该值。
通话
Editor.remove(String key);
然后设置您的值。
这还取决于您想要实现的目标。如果您尝试在设置中存储“int”,然后存储“float”,然后再次存储“int”,答案是“不”,永远不要这样做!
如果您只是在任何生产之前的开发过程中更改了变量类型,那么您只需清除应用程序数据并使用新变量即可,而无需在代码中清除它。
但是如果您已经部署了应用程序并且现在想要更改变量类型,那么是的,您可以这样做并使用 .remove() 方法。
关于android - 我可以安全地更改 SharedPreferences 变量的类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34275840/