Tengo una clase que amplía PreferenceActivity y muestra la pantalla de preferencias de mi aplicación. ¿Es posible verificar si se hicieron cambios a las preferencias?¿Cómo detectar si se realizaron cambios en las preferencias?
Esto ayuda ...
Otros entrada relacionada: SharedPreferences.onSharedPreferenceChangeListener not being called consistently
public class PreferenceClass extends PreferenceActivity {
OnSharedPreferenceChangeListener listener;
public void onCreate(Bundle savedInstanceState) {
SharedPreferences prefs = this.getSharedPreferences("settings", 0);
listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
int flag = 1;
}
};
prefs.registerOnSharedPreferenceChangeListener(listener);
super.onCreate(null);
addPreferencesFromResource(R.xml.settings);
}
}
veo demasiadas direcciones esto podría ir en función de su objetivo general. ¿Podría arrojar algunos detalles sobre cuándo está revisando y con qué fin? –
@RHughes Solo quiero que cada vez que se hace un cambio para hacer algo ... Acabo de encontrar este enlace http: //stackoverflow.com/questions/2542938/sharedpreferences-onsharedpreferencechangelistener-not-being-called-consistently ... Todavía no puedo conseguir para que funcione ... el método en el oyente nunca se llama ... ¿Alguna idea? – mixkat
Sin mirar el código, solo puedo adivinar que estás cometiendo el mismo error que siempre hago. Construyo un gran oyente y luego olvido adjuntarlo al objeto correcto. Además, asegúrese de conectar el oyente al objeto en el método onCreate() o al menos en el código que ejecuta ANTES de que realmente necesite que el oyente esté escuchando. –