java - Android getWindow 根据 Listpreference 设置我的 Activity 的背景

标签 java android

我基本上创建了一个 ListPreference,用户可以从选项列表中进行选择。他们选择了可用选项之一后,应用程序将返回主 Activity ,背景图像将相应更改,但是,我的应用程序似乎无法检测到首选项的更改并更改背景图像。可以有人请建议吗?谢谢!***下面的代码 fragment 显示了我的主要 Activity 恢复后,它如何检测偏好的变化并更改背景图像。

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);

}

最佳答案

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

关于java - Android getWindow 根据 Listpreference 设置我的 Activity 的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7150179/

相关文章:

android - fragment 已添加 IllegalStateException

java - C代码如何不可重用而Java如何使用继承来拥有可重用代码?

java - 将枚举转换为迭代器

java - 如何自定义验证失败返回的字段名称?

java - 使用 Spring 根据实例化层次结构注入(inject)类的不同实例

java - BigDecimal 输出不包含精确的十进制值?

android - WebRTC android 示例、XMPP 或 Http 对等连接?

android - 删除 Android Parse 本地数据存储中的所有对象

android - Emulator vs Phone 依靠哪一个?

java - ViewPager、FragmentStatePagerAdapter、ListFragment单独列出每个Fragment的数据