AlertDialog 에서 Back 버튼 막아버리기!!

개발/안드로이드 2017. 7. 18. 13:19
반응형

개발하면서 Dialog 팝업창을 종종 쓰게 됩니다.

그런데 AlertDialog 를 띄운 상태에서 Back 키를 누르게 되면 의도하지 않게 팝업창이 닫히게 됩니다.

팝업창이 닫히지 않게 하려면 어떻게 해야 될까요?


이럴 때는 setCancelable 함수를 사용하면 해결이 됩니다.

아래 코드를 보시면 쉽게 이해하실 수 있습니다.



AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle("대화상자 테스트")
.setMessage("깜짝놀라셨습니까?")
.setCancelable(false)
.setPositiveButton("예", new DialogInterface.OnClickListener(){

public void onClick(DialogInterface dialog, int whichButton){
finish(); // 깜짝 놀라 자지러지며 종료된다.
}
})
.setNegativeButton("취소", new DialogInterface.OnClickListener(){

public void onClick(DialogInterface dialog, int whichButton){
dialog.cancel(); // 아무일도 없었던 척하면 닫는다.
}
});

AlertDialog dialog = builder.create();
dialog.show();
 


어떤가요?

참고로 팝업창을 수동으로 닫아줄려면 dismiss 메소드를 호출하면 됩니다.

dialog.dismiss();






반응형
admin