所以我对java / android仍然有点新意,我试图读取一个偏好值,但我试图理解它的每个部分,所以它对我来说更有意义......
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
boolean soundEnabledPref = sharedPref.getBoolean("sound", soundEnabled);
在getBoolean中,我试图理解第一个字符串是什么“声音”,以及soundEnabled布尔值是什么。
所以我已经将soundEnabled声明为top作为布尔值,我猜这是存储我正在检索的值的原因吗?
第一个字符串虽然是“声音”的目的是什么?我想确保我正确地命名它,如果它用于存储某些东西,或者如果我用它来引用某些东西,那么我可能需要将它命名为不同的东西。
我已经阅读了开发人员的文档并且仍然有点困惑,所以如果有人能给我一个快速的解释,我会非常感激它!
答案 0 :(得分:6)
soundEnabled 是一个布尔变量,它有一些值 - true或false;如果没有“声音”键,此值将用作soundEnabledPref的默认值;它也可以这样写:
boolean soundEnabledPref = sharedPref.getBoolean("sound", true);
如果没有“声音”键,soundEnabledPref将采用默认值true
键的一个好习惯是使用常量 - 你将在以后避免简单的拼写错误,例如:
public static final String KEY_SOUND = "sound";
然后
boolean soundEnabledPref = sharedPref.getBoolean(ClassNameWhereItsDefined.KEY_SOUND, true);
答案 1 :(得分:1)
答案 2 :(得分:0)
共享首选项使用词典概念它键,值对作为词典它保存任何键与字符串和值作为对象共享首选项是安全类型,当你想要保存整数你使用方法putInt或putBoolean来保存布尔值,当你检索来自共享偏好也会在为你投射价值后为你返回强类型,
希望对你有所帮助
答案 3 :(得分:0)
您可以在共享首选项中存储多个内容,因此您可以使用键来标识要设置的值以及稍后要检索的值。
在这种情况下,sound
是您的关键。
在应用中的某个时刻,您拨打了SharedPreferences.Editor.putBoolean("sound", myBoolean);
。
稍后在您的应用中,您可以致电SharedPreferences.getBoolean("sound", defaultBoolean);
以了解myBoolean
的价值。在此次调用中,defaultBoolean
只是您想要获得的默认值,如果您从未调用SharedPreferences.Editor.putBoolean
,则因此"sound"
的值不存在。