我在使用基于我偏好的字符串的 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);
}
此时我有两个选择;光与暗。代码成功地根据需要将 themePref 设置为浅色或深色,我已经通过调试确认,但由于某种原因,if 语句失败了。我已经手动将一个字符串设置为“dark”,然后它就可以正常工作了。
我是不是漏掉了什么?为什么来自首选项的字符串会以不同的方式处理?
如有任何帮助,我们将不胜感激。
谢谢, 乔希
最佳答案
您应该使用 themePref.equals("dark")
(或者更好的 "dark".equals(themePref)
)来比较字符串。 == 告诉您字符串实例是否相同,但是两个实例可以具有相同的值并且不是相同的实例。
关于java - Android:IF 语句在通过首选项设置时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5060011/