투케이2K

566. (Android/Java) Alert 팝업창 조건 체크 dismiss 닫기 막기 - getButton 본문

Android

566. (Android/Java) Alert 팝업창 조건 체크 dismiss 닫기 막기 - getButton

투케이2K 2023. 5. 28. 19:52

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java

 

[소스 코드]

        // ---------------------------------------------------------------
        // [로직 처리 실시]
        // ---------------------------------------------------------------
        try {
            new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
                @Override
                public void run() {

                    // -------------------------------------------
                    // [변수 선언]
                    // -------------------------------------------
                    AlertDialog alertDialog;


                    // -------------------------------------------
                    // [AlertDialog 팝업창 생성]
                    // -------------------------------------------
                    AlertDialog.Builder builder = new AlertDialog.Builder(A_Intro.this);

                    builder.setTitle("알림"); // [팝업창 타이틀 지정]
                    //builder.setIcon(R.drawable.app_icon); // [팝업창 아이콘 지정]
                    builder.setMessage("조건 체크 팝업창 입니다"); // [팝업창 내용 지정]
                    builder.setCancelable(false); // [외부 레이아웃 클릭시도 팝업창이 사라지지않게 설정]
                    builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // -----------------------------------------
                            // TODO [확인 버튼 클릭 이벤트 처리]
                            // -----------------------------------------
                            S_Log._D_("팝업창 호출 [확인] 클릭", null);
                            // -----------------------------------------
                        }
                    });
                    builder.setNegativeButton("취소", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // -----------------------------------------
                            S_Log._E_("팝업창 호출 [취소] 클릭", null);
                            // -----------------------------------------
                        }
                    });
                    alertDialog = builder.create();
                    alertDialog.show();


                    // -------------------------------------------
                    // [확인 버튼 재상속 조건이 맞는 경우만 dismiss]
                    // -------------------------------------------
                    alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            // -----------------------------------------
                            S_Log._W_("팝업창 호출 재상속 [확인] 클릭", null);
                            // -----------------------------------------

                            if(closeDialog == true) { // [닫기]
                                alertDialog.dismiss();
                            }
                            else { // [플래그 값 변경]
                                closeDialog = true;
                            }
                        }
                    });

                }
            }, 0);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
 

[결과 출력]


반응형
Comments