我正在使用 SharedPreferences
存储用户设置/选项。
我已经添加了一个新的选项,可以打开或关闭,所以想把它存储为一个 boolean
在我的共享首选项文件中。
这一切都是好的,但这是一个新的选择,我想设置我的内部变量 null
如果用户没有显式设置该选项(这样,当新版本第一次运行时,我可以提示用户进行选择)。
以下操作不起作用,因为getboolean需要基元 boolean
作为首选项不在中时返回的默认值 shared+prefs
.
myNewSetting = shared_prefs.getBoolean("my_mew_setting",null);
在上面 myNewSetting
是一个 Boolean
可以设置为 null
,但这没用,因为 getBoolean
s要求。
有什么办法吗?
2条答案
按热度按时间zz2j4svz1#
如果您需要一个空的返回,您可以继续通过一个对象。它将是一个解决方案,以调整和使用相关的控制值(布尔)在对象中根据您的操作。您各自的类需要parcelable进程。在当前情况下,不幸的是返回null将不起作用。因为默认值需要一个基元类型,所以它必须是true或false。
7tofc5zh2#
getboolean方法返回一个基本布尔值,因此即使您将其赋给布尔值,它也只是将其装箱。方法的定义是:
抽象布尔getboolean(字符串键,布尔值)
如果确实要区分设置不存在的情况,只需检查设置是否存在: