Android getWindow根据Listpreference设置我的活动背景

时间:2011-08-22 15:58:00

标签: java android

我基本上创建了一个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);

}

1 个答案:

答案 0 :(得分:0)

也许您的“设置”成员会保留缓存值?尝试使用传递给侦听器的“prefs”对象。