Actualizar el fragmento cuando se desactiva el diálogo
¿Hay alguna manera que puedo detectar cuando se desactiva un DialogFragment, para que pueda actualizar su fragmento padre?
- Quitar y agregar la página a FragmentPagerAdapter
- Java.lang.IllegalStateException: Fragmento no adjunto a la actividad
- Cómo determinar cuándo Fragmento se vuelve visible en ViewPager
- Menú contextual inapropiado dentro de un fragmento
- Actividad y Fragmento Ciclos de Vida y Cambios de Orientación
- Android: onPostResume se llama después de que se reanude el fragmento
- CommitAllowingStateLoss () y el fragmento commit ()
- ¿Cómo navegar en fragmentos?
- ViewPager con Fragmentos que contienen TableLayouts se carga lentamente:
- FloatingActionButton expandir en una nueva actividad
- Android Fragmentos y animación
- Android SearchView OnFocusChangeListener: onFocusChange no se llama en absoluto
- Pestañas de la barra de acción con ViewPager con el cajón de navegación
Puede agregar un oyente y anular el diálogo onDismiss de su fragmento:
public class DismissDialog extends DialogFragment { private DialogInterface.OnDismissListener onDismissListener; public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) { this.onDismissListener = onDismissListener; } @Override public void onDismiss(DialogInterface dialog) { super.onDismiss(dialog); if (onDismissListener != null) { onDismissListener.onDismiss(dialog); } } }
Entonces, en el padre, usted fija un oyente:
DismissDialog d = new DismissDialog(); d.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { } }); d.show(getSupportFragmentManager(), "sometag");
Anule onDismiss () de DialogFragment, o cuando construya el diálogo subyacente, defina un listener con setOnDimissListener () .
Una forma de lidiar con esto es incrustar el DialogFragment dentro de una Actividad y mostrar la actividad como un Diálogo, hay un consejo en el siguiente enlace que explica cómo:
http://developer.android.com/guide/topics/ui/dialogs.html
Puede utilizar esto para actualizar el fragmento subyacente porque cuando se termina el cuadro de diálogo (que es una actividad), onResume () se llamará en el fragmento subyacente. Agregue código para actualizar el estado del fragmento en el método onResume () y eso es todo lo que hay demasiado.
Acabo de resolver esto en mi proyecto. Lo que tengo es una actividad con un ListFragment. En ese fragmento de lista, cuando se hace clic en un elemento en particular, se muestra un DatePickerFragment (un DialogFragment personalizado que muestra un DatePickerDialog). Cuando se selecciona una fecha, quiero que se actualice el ListFragment.
Para lograr esto, en la actividad que aloja el ListFragment (y también alberga el DatePickerFragment, de hecho) implementé un método que simplemente reemplaza el ListFragment con una nueva instancia, así:
public void criteriaChanged() { getFragmentManager().beginTransaction() .replace(R.id.container, new FilterFragment()) .commit(); }
Llamo a este método desde el DatePickerFragment, desde onDateSet ():
FilterActivity fa = (FilterActivity) getActivity(); fa.criteriaChanged();
Esto hace el truco para mí.
- ¿Cómo agregar TextView en medio de pulgar SeekBar?
- Cómo configurar scrollbar pulgar mediante programación en Android?