Вопрос

Я не понимаю, что здесь происходит. У меня есть список версий с записями и входами правильно устанавливаются.

Когда я ухожу в активность предпочтительств и измените значение, которое он успешно работает (я добавил тост для вывода значения после изменения параметра для тестирования).

Но когда я делаю следующее, чтобы сравнить его, он всегда выполняет статусувшую ставку, когда я меняю его каждый раз, даже вроде выше, когда я изменил 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");

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top