¿Por qué Custom DialogPreference no se activa en onSharedPreferenceChanged?

Estoy intentando hacer la preferencia del diálogo en preferencias, donde el usuario apenas chasca el botón positivo para accionar una cierta acción. (Borrar base de datos? No | Sí)

public class MyDialogPreference extends DialogPreference { public MyDialogPreference(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override protected void onDialogClosed(boolean positiveResult) { super.onDialogClosed(positiveResult); Log.d(MainActivity.TAG, "# onDialogClosed: " + positiveResult); } } 

En realidad, no quiero persistir nada, sólo disparador onSharedPreferenceChanged activado, por lo que puede manejar en la actividad. Pero no puedo imaginar cómo desencadenarlo

//SOLUCIÓN

 @Override protected void onDialogClosed(boolean positiveResult) { super.onDialogClosed(positiveResult); if(positiveResult) { persistBoolean(!getPersistedBoolean(true)); } Log.d(MainActivity.TAG, "# onDialogClosed: " + positiveResult); } 

onSharedPreferenceChanged se llama debido a la devolución de llamada incorporada registrada en la sharedpreference , a menos que cambie la clave asociada con dialogPreference no va a obtener la onSharedPreferenceChanged llamada onSharedPreferenceChanged .

Así que lo que podría hacer es cada vez que el diálogo está cerrado, podría cambiar el valor de la clave. Algo como abajo

 text = getPersistedString("1") if(text.length() > 10) text = "1"; persistString(text+"1"); 

Asegúrese de que su cuadro de diálogo tiene una clave y android: persistente como true en xml

  • ¿Cuál es el nombre de archivo utilizado por defecto las preferencias compartidas?
  • Crear preferencia de diseño mediante programación
  • Cómo tocar EditTextPrefences de otra actividad u otro hilo
  • Pantalla de Preferencias de Android sin XML
  • Extras en el intento de correo electrónico - Preferencias XML
  • Android: No se ha encontrado actividad para manejar el error de intención? Cómo va a resolver
  • Cómo vincular el archivo de preferencias automáticas a las preferencias personalizadas en android
  • SharedPreferences Editor commit lleva mucho tiempo
  • Agregar botones a PreferenceFragment
  • Preferencias anidadas.xml
  • ¿Cómo hacer que SharedPreferences de una PreferenceActivity esté configurada como predeterminada en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.