Jeśli okno zostaje odrzucona, chcę coś zrobić dla mojego background.So Chcę wiedzieć, czy okno jest oddalonaJak sprawdzić, czy okno dialogowe nie działa w systemie Android?
Odpowiedz
można użyć 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;
}
Jeśli używasz DialogFragment
tylko przesłonić onDismiss()
Dziękuję bardzo! –
Fantastyczne, ale nie dzieje się tak w przypadku obracania urządzenia - co zabija dialog. Jakieś pomysły? – Fattie
@JoeBlow Kiedy urządzenie zostanie obrócone i zostanie odtworzona aktywność "onCreate", a 'Bundle savedInstanceState' nie będzie równe' null'. Możesz zapisać dowolny stan (na przykład boolean, czy okno dialogowe było wyświetlane przed obróceniem urządzenia) w 'onsaveInstanceState' i odnieść go tutaj. –
@Ken Wolf ma świetną odpowiedź na to pytanie.
Chciałam tylko dodać, że onDismissListener
został wprowadzony tylko w API 17
. Jeśli próbujesz wesprzeć coś mniejszego, możesz użyć onCancelListener
, co nie jest tak dobre, ale obejmuje przypadki takie jak backButton i stukanie poza AlertDialog.
public Dialog createDialog() {
Dialog d = new Dialog(this);
d.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// do something
}
});
}
Jeśli nie spodziewać się żadnych danych, ale po prostu chcesz wiedzieć, okno znika być może to pomoże: https://gist.github.com/CrandellWS/ac79d3864a96344d204d869d64fd1922 – CrandellWS