android - 我可以安全地更改 SharedPreferences 变量的类型吗?

标签 android sharedpreferences

我在 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/

相关文章:

java - Android:ThreadSafeClientConnManager 下载图像时出现错误

android - 如何拒绝 onSharedPreferenceChanged() 监听器中的更改

java - 从 EditText 中的共享首选项加载字符串(两个类)

SharedPreference 的 Android handle 注入(inject)

android - 如何在android中使用url获取域的IP地址?

android - 如何以编程方式连接到 Android 中的 VPN 服务器(用户名和密码)

android - 使用 RxJava 等待完成多个任务

android - TextView 与附近按钮的高度相同

java - 使用 SharedPreferences 保存字符串

Android 共享首选项名称