투케이2K

500. (Android/Java) [유틸 파일] recycleAlert : 재사용 Alert 팝업창 호출 실시 본문

Android

500. (Android/Java) [유틸 파일] recycleAlert : 재사용 Alert 팝업창 호출 실시

투케이2K 2023. 2. 22. 04:53

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

 

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [RECYCLE] : [재사용 Alert 팝업창 호출 실시]
    // -----------------------------------------------------------------------------------------
    static AlertDialog.Builder builder;
    static AlertDialog alertDialog;
    public static void recycleAlert(final Context mContext, final int setType, String header, String content, String ok, String no) {

        // -----------------------------------------

        /**
         * // -----------------------------------------
         * [recycleAlert 메소드 설명]
         * // -----------------------------------------
         * 1. 재사용 Alert 팝업창 호출 처리 메소드
         * // -----------------------------------------
         * */

        // -----------------------------------------

        //*
        S_Log.ltd("================================================");
        S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 재사용 팝업창 호출 실시]");
        S_Log.cnt("-----------------------------------------");
        S_Log.cnt("[setType :: "+String.valueOf(setType)+"]");
        S_Log.cnt("-----------------------------------------");
        S_Log.cnt("[header :: "+String.valueOf(header)+"]");
        S_Log.cnt("-----------------------------------------");
        S_Log.cnt("[content :: "+String.valueOf(content)+"]");
        S_Log.lbd("================================================");
        // */

        // -----------------------------------------

        /** [사용 방법 정의] */
        /*
        // [팝업창 호출 실시]
        C_Ui_View.recycleAlert(
                A_Main.this,
                1, // [와이파이 설정창 이동 코드]
                "알림",
                "현재 연결된 네트워크가 없습니다. \n 설정에서 다시 확인해주세요.",
                "설정",
                "취소");
        // */

        // -----------------------------------------

        // [타이틀 및 내용 표시]
        final String Tittle = String.valueOf(header);
        final String Message = String.valueOf(content);

        // -----------------------------------------

        // [버튼 이름 정의]
        String buttonYes = String.valueOf(ok);
        String buttonNo = String.valueOf(no);

        // -----------------------------------------

        try {
            new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
                @Override
                public void run() {
                    // [기존 활성화 된 팝업창 종료]
                    if (alertDialog != null){
                        alertDialog.dismiss();
                        alertDialog = null;
                    }

                    // [AlertDialog 팝업창 생성]
                    builder = new AlertDialog.Builder(mContext);
                    builder.setTitle(Tittle); //[팝업창 타이틀 지정]
                    // builder.setIcon(R.drawable.app_icon); //[팝업창 아이콘 지정]
                    builder.setMessage(Message); //[팝업창 내용 지정]
                    builder.setCancelable(false); //[외부 레이아웃 클릭시도 팝업창이 사라지지않게 설정]
                    builder.setPositiveButton(buttonYes, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // TODO Auto-generated method stub
                            // -----------------------------------------
                            // TODO [확인 버튼 클릭 이벤트 처리]
                            if (setType == 0) {

                            }
                            // -----------------------------------------
                            // [팝업창 null 처리]
                            if (alertDialog != null){
                                alertDialog.dismiss();
                                alertDialog = null;
                            }
                            // -----------------------------------------
                        }
                    });
                    builder.setNegativeButton(buttonNo, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // TODO Auto-generated method stub
                            // -----------------------------------------
                            // [팝업창 null 처리]
                            if (alertDialog != null){
                                alertDialog.dismiss();
                                alertDialog = null;
                            }
                            // -----------------------------------------
                        }
                    });
                    alertDialog = builder.create();
                    try {
                        alertDialog.show();
                    }
                    catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }, 0);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

 


 

반응형
Comments