Разработка Android: ListPreference Trouble - PullRequest
0 голосов
/ 13 октября 2010

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

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

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

Имеются тосты, поэтому я могу дважды проверить, какой оператор выполняется, ивсегда кажется, что он еще один.

У меня плохой день и что-то не так?

1 Ответ

1 голос
/ 13 октября 2010

Для начала никогда не сравнивайте строки, подобные этой backgroundPref == "bluesky" должно быть backgroundPref.equals("bluesky");

...