DialogFragment 사라질때 - dismiss listener
DialogFragment 에서 Dismiss 리스너 등록
MyDialogFramgent dialog = new MyDialogFragment();
dialog.show(getFragmentManager(), "TAG");
dialog.getDialog().setOnDismissListener(
new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
// 다이얼로그가 사라질때 할 행위
}
});
위와 같이 Dismiss 리스너를 등록할 경우 NullPointerExeption 이 발생한다.
아마도 Dialog 가 활성화 되지 않은 상태였기 때문에 getDialog() 를 호출할때 Null 에러가 떨어지는것 같다.
그래서 getFragmentManager().executePendingTransactions(); 를 리스너 등록 전에 넣어줘야 한다.
즉,
MyDialogFramgent dialog = new MyDialogFragment();
dialog.show(getFragmentManager(), "TAG");
getFragmentManager().executePendingTransactions();
dialog.getDialog().setOnDismissListener(
new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
// 다이얼로그가 사라질때 할 행위
}
});
출처 : https://stackoverflow.com/a/42064907/3897810