Jos*_*osh 2 java string android preferences
我在根据我的偏好中的字符串使用和IF语句时遇到问题.
这是代码:
preferences = PreferenceManager.getDefaultSharedPreferences(this);
String themePref = preferences.getString("theme", "null");
Log.i("Theme", "Current theme is " + themePref );
if (themePref == "dark"){
setTheme(android.R.style.Theme_Black);
}else{
setTheme(android.R.style.Theme_Light);
}
Run Code Online (Sandbox Code Playgroud)
我现在有两种选择; 光与暗.代码根据需要成功地将themePref设置为亮或暗,并且我已通过调试确认,但由于某种原因if语句失败.我已手动将字符串设置为"黑暗",然后它正常工作.
我在这里错过了什么吗?为什么来自首选项流程的字符串会有所不同?
任何帮助将不胜感激.
谢谢,乔希
你应该使用themePref.equals("dark")(甚至更好"dark".equals(themePref))来比较字符串.==告诉您字符串实例是否相同,但两个实例可以具有相同的值而不是相同的实例.