我不明白这里发生了什么。我有一个正确设置了条目和条目值的 ListPreference。
当我进入首选项活动并更改它成功工作的值时(我添加了一个 Toast 以在更改测试选项后输出值)。
但是当我执行以下操作来比较它时,它总是在我每次更改它时执行 else 语句,即使像上面我更改 ListPreference 并且值为“bluesky”时它仍然无法执行正确的 if 语句。
这是我用来检查 onResume() 中 ListPreference 值的代码:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this)
String backgroundPref = prefs.getString("backgroundPref", "");
if(backgroundPref == "bluesky"){
mainLayout.setBackgroundResource(R.drawable.bluesky);
Toast.makeText(getBaseContext(), "Blue Sky", Toast.LENGTH_SHORT).show();
}else if(backgroundPref == "sky"){
mainLayout.setBackgroundResource(R.drawable.sky);
Toast.makeText(getBaseContext(), "Sky", Toast.LENGTH_SHORT).show();
}else{
mainLayout.setBackgroundResource(R.drawable.sunsetscene);
Toast.makeText(getBaseContext(), "Sunset Scene", Toast.LENGTH_SHORT).show();
}
Toasts 在那里,所以我可以仔细检查哪个语句被执行,它似乎总是另一个。
我是不是过得很糟糕,出了什么问题?