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
'Dev > Android' 카테고리의 다른 글
특정 Context 가 특정 Activity 의 Context 인지 확인하는 방법 (0) | 2018.07.03 |
---|---|
onKeyDown() 함수와 onBackPressed() 함수 (0) | 2018.06.27 |
Fabric 오류 in Jenkins - Failed to apply plugin [id 'io.fabric'] (0) | 2018.06.18 |
[Warning] 코드로 TextView 스타일 변경하기 (Normal, Bold, Italic...) - 예외상황 (0) | 2018.06.08 |
Progressbar 를 띄울때, 해당 페이지 Touch 막기 (0) | 2018.06.07 |