Fai la tua attività implementare OnDismissListener
public final class YourActivity extends Activity implements DialogInterface.OnDismissListener {
@Override
public void onDismiss(final DialogInterface dialog) {
//Fragment dialog had been dismissed
}
}
DialogFragment già implementa OnDismissListener
, basta eseguire l'override del metodo e chiamare l'Activity.
public final class DialogFragmentImage extends DialogFragment {
///blah blah
@Override
public void onDismiss(final DialogInterface dialog) {
super.onDismiss(dialog);
final Activity activity = getActivity();
if (activity instanceof DialogInterface.OnDismissListener) {
((DialogInterface.OnDismissListener) activity).onDismiss(dialog);
}
}
}
Se si sta iniziando la finestra di dialogo da un frammento utilizzando il gestore childFragment
(API> = 17), è possibile utilizzare getParentFragment
per parlare con l'onDismissListener sul frammento genitore .:
public final class DialogFragmentImage extends DialogFragment {
///blah blah
@Override
public void onDismiss(final DialogInterface dialog) {
super.onDismiss(dialog);
Fragment parentFragment = getParentFragment();
if (parentFragment instanceof DialogInterface.OnDismissListener) {
((DialogInterface.OnDismissListener) parentFragment).onDismiss(dialog);
}
}
}
fonte
2014-05-21 14:27:08
è possibile utilizzare valore booleano prima dimissing la finestra e utilizzare tale valore booleano per notificare l'attività –
Va bene, come faccio a comunicare l'attività? – deimos1988
impostare inizialmente il valore booleano su falso e prima di chiudere la finestra di dialogo imposta il valore booleano su true e notificare l'attivazione utilizzare il valore booleano per verificare se il valore è vero o falso –