Android: haz algo en actividad cuando cambian las preferencias

Tengo dos clases, CustomerPreferences que extends PreferenceActivity implements OnSharedPreferenceChangeListener y CustomerActivity que extends Activity . En CustomerActivity , calculo algunos valores. En CustomerPreferences hay una ListPreference particular que deseo supervisar. Cuando el usuario ingrese CustomerPreferences -que se realiza a través de una opción de menú en CustomerActivity y cambia ListPreference , luego pulsa el botón Atrás y regresa a CustomerActivity , quiero recalcular mis valores basados ​​en la nueva configuración de preferencias. Si el usuario entra en CustomerPreferences pero no cambia el valor de ListPreference , no quiero recalcular nada al volver a CustomerActivity .

¿Cómo puedo hacer esto?

Creo que necesitaré hacer algo en CustomerPreferences.onSharedPreferenceChanged , así como CustomerPreferences.onBackPressed , probablemente maneje algo en CustomerActivity .

Puede manejar el cambio en el método onResume () de CustomerActivity. Así que después de que el usuario presione de nuevo, en onResume (), revise sus preferencias y vuelva a calcular sus valores y cambie su representación gráfica basada en los valores calculados.

Claro, a veces esto será innecesario ya que el usuario no puede haber cambiado nada. Mientras sus cálculos no sean demasiado pesados, esto no debería ser motivo de preocupación.

Otra cosa que puedes hacer es establecer un booleano en preferencias compartidas, como preferencesChanged, que se establecerá en true en CustomerPreferences.onSharedPreferenceChanged. A continuación, compruebe preferencesChanged en onResume (). Si es cierto, haga sus recálculos. De lo contrario, no haga nada.

Otra opción es iniciar la actividad de preferencias para un resultado con startActivityForResult (). A continuación, realice los recálculos en onActivityResult () en CustomerActivity. El valor del resultado se establecería en CustomerPreferences.onSharedPreferenceChanged

  • Límite de tamaño de las preferencias compartidas de Android
  • Guardar un arraylist de cadenas a las preferencias compartidas
  • SharedPreferences no guarda valor
  • Android Studio - Explorador de archivos de Android Device Monitor no funciona
  • Convertir ArrayList con Gson a String
  • Hacer que una actividad aparezca sólo una vez, cuando se inicia la aplicación
  • ¿Cómo actualizar SharedPreferences en android cuando restaura desde un archivo?
  • Cómo analizar JSON analizado para uso sin conexión
  • Guardar matriz de bytes con SharedPreferences
  • La aplicación sigue olvidando las preferencias compartidas al reiniciar
  • Escritura de clase Singleton para administrar las compartidas SharedPreferences de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.