Я в основном создал 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);
}
Может быть, ваш член "настроек" сохраняет кешированное значение? Попробуйте использовать объект "prefs", который передается вашему слушателю.