본문 바로가기

Programming/Android

[Android] 다이얼로그(Dialog) 닫기 방지. 닫히지 않게 하기.

다이얼로그로 로그인 화면이나, 비밀번호 입력창 등을 만들기도 한다.

가장 많이 사용 하는 것이 AlertDialog.Builder 를 사용할텐데, 

기존에 제공하는 리스너들을 Overriding 해서 사용할 경우

Ok, Cancel 버튼 클릭시 원하지 않게 창이 닫기게 된다.

아래의 방지코드를 넣게 되면 창이 닫기지 않게 된다.


dialog.setOnShowListener(new DialogInterface.OnShowListener() {
    @Override
    public void onShow(DialogInterface arg0) {
        Button positiveButton = ( (AlertDialog) arg0 ).getButton(AlertDialog.BUTTON_POSITIVE); 
        //Or AlertDialog.BUTTON_NEGATIVE
        positiveButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //=========================
            }
        });
    }
});

확인 버튼과 취소 버튼에 대한 리스너를 달아주면 끝!

닫히지 않는 다이얼로그를 볼 수 있다.(닫을때 dismiss 하는 걸 잊으면 안돼요~)

AlertDialog.Builder 를 사용하면 create()를 실행하여 반드시 AlertDialog 객체를 생성한 뒤에 사용해야 setOnShowListener를 볼 수 있다.