我有一个保存的值SharedPreferences
是float
.我尝试将此保存为int
经过一些设计更改之后,但我得到了一个ClassCastException
.当我尝试加载此值时抛出异常.
违规行: preferences.getInt(myKey, myDefaultValue)
改编自:preferences.getFloat(myKey,myDefaultValue)`
是否有一种安全的方法从此密钥加载并覆盖此值而无需清除缓存?或者我需要创建一个全新的密钥?
您应该首先从首选项中删除该值.
呼叫
Editor.remove(String key);
然后设置你的价值.
这也取决于你想要达到的目标.如果你试图在设置中存储'int',然后存储'浮动',然后再存储'int',答案是否定的,绝对不要这样!
如果您在开发之前刚刚更改了变量类型,那么您可以清除应用程序数据并使用新变量,而无需在代码中清除它.
但是,如果您已经部署了应用程序,现在想要更改变量类型,那么是的,您可以执行此操作并使用.remove()方法.