Si la boîte de dialogue est fermée, je veux faire quelque chose pour mon arrière-plan.Alors je veux savoir si la boîte de dialogue est fermée
Vous pouvez utiliser une onDismissListener
http://developer.Android.com/reference/Android/content/DialogInterface.OnDismissListener.html
public Dialog createDialog() {
Dialog d = new Dialog(this);
d.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(final DialogInterface arg0) {
// do something
}
});
return d;
}
Si vous utilisez une DialogFragment
, remplacez simplement onDismiss()
@ Ken Wolf a une excellente réponse à cette question.
Je voulais juste ajouter que onDismissListener
n'a été introduit que dans API 17
. Si vous essayez de supporter quelque chose de plus bas, vous pouvez utiliser onCancelListener
, qui n'est pas aussi bon mais couvre des cas comme backButton et un tapotement en dehors de AlertDialog.
public Dialog createDialog() {
Dialog d = new Dialog(this);
d.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// do something
}
});
}
J'ai remarqué que la onDismissListener
est appelée même lorsque vous sélectionnez l'une des options de l'alerte (bouton Oui/Non/Neutre). Pour moi, onCancelListener
était la meilleure option car j'avais besoin de quelque chose qui traçait une fermeture explicite de la boîte de dialogue en cliquant en dehors de la zone d'alerte.