Dev/Android

DialogFragment 사라질때 - dismiss listener

healthyryu 2018. 6. 21. 10:35

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

반응형