Разработка Android: ListPreference
-
29-09-2019 - |
Вопрос
Я не понимаю, что здесь происходит. У меня есть список версий с записями и входами правильно устанавливаются.
Когда я ухожу в активность предпочтительств и измените значение, которое он успешно работает (я добавил тост для вывода значения после изменения параметра для тестирования).
Но когда я делаю следующее, чтобы сравнить его, он всегда выполняет статусувшую ставку, когда я меняю его каждый раз, даже вроде выше, когда я изменил ListPreference, и значение было «Bluesky», он все еще не удалось выполнить правильное, если оператор.
Вот код, который я использую для проверки значения ListPreference в OnResume ():
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();
}
Тосты там, поэтому я могу дважды проверить, какое утверждение выполняется, и он всегда, кажется, остальный.
У меня плохой день и что-то не так?
Решение
Для начала никогда не сравнивать строки, как это backgroundPref == "bluesky"
должно быть backgroundPref.equals("bluesky");