Как узнать, отклонен ли диалог на Android?
Если диалог отклонен, я хочу сделать что-то для своего фона. Поэтому я хочу знать, отклонен ли диалог
Ответы
Ответ 1
Вы можете использовать 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;
}
Если вы используете DialogFragment
просто переопределить onDismiss()
http://developer.android.com/reference/android/app/DialogFragment.html#onDismiss (android.content.DialogInterface)
Ответ 2
@Ken Wolf имеет отличный ответ на этот вопрос.
Просто хотел добавить, что onDismissListener
был введен только в API 17
. Если вы пытаетесь поддержать что-то ниже, вы можете использовать onCancelListener
, что не так хорошо, но охватывает такие случаи, как backButton и выстукивание вне AlertDialog.
http://developer.android.com/reference/android/content/DialogInterface.OnCancelListener.html#onCancel(android.content.DialogInterface)
public Dialog createDialog() {
Dialog d = new Dialog(this);
d.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// do something
}
});
}