我基本上创建了一个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)
也许您的“设置”成员会保留缓存值?尝试使用传递给侦听器的“prefs”对象。