Android getWindow для установки фона моей активности в соответствии с Listpreference

1

Я в основном создал ListPreference, где пользователь мог бы выбрать один из вариантов. После того, как они выбрали один из доступных вариантов, приложение вернется к основному действию, и фоновое изображение изменится соответствующим образом, однако, похоже, мое приложение не сможет обнаружить изменение предпочтения и изменить фоновое изображение. Кто-нибудь, пожалуйста, посоветуйте? Спасибо! *** Ниже показаны фрагменты после моего основного резюме, как он определяет изменение предпочтения и меняет фоновое изображение.

protected void onResume() 
{
    super.onResume();
    listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
          public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
              if(key.equals("listPrefwall")){
                tv.setText(prefs.getString("listPrefwall", "ondon"));   


                    if(prefs.getString("listPrefwall", "ondon")=="ondon")
                    {
                        getWindow().setBackgroundDrawableResource(R.drawable.ondon);
                        tv.setText("testing");
                    }
                     else if(prefs.getString("listPrefwall", "ondon")=="japan")
                     {
                         getWindow().setBackgroundDrawableResource(R.drawable.japan);
                         tv.setText("pivot");
                      }
        }
          }
        };
    settings.registerOnSharedPreferenceChangeListener((OnSharedPreferenceChangeListener) listener);

}
  • 0
    Вы удостоверились, что действительно получили событие слушателя?
  • 0
    да, я сделал, после того, как if (key.equals ("listPrefwall")), я фактически попытался поместить tv.setText (settings.getString ("listPrefwall", "ondon")); и это работает. Проблема в том, что оператор if и if ... else не выполняется ... я не знаю, почему ...
Теги:

1 ответ

0
Лучший ответ

Может быть, ваш член "настроек" сохраняет кешированное значение? Попробуйте использовать объект "prefs", который передается вашему слушателю.

  • 0
    Я отредактировал код, используя prefs в качестве моего объекта ... однако выполняется только метод setText моего TextView TV .... кажется, что мой оператор if ... else пропущен .... Я до сих пор не могу понять, почему ...любая идея?
  • 1
    Вы, вероятно, хотите использовать .equals () вместо ==
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню