투케이2K

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

Android

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

투케이2K 2023. 2. 20. 22:57

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

        // ----------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [RECYCLE] : [재사용 Alert 팝업창 호출 실시]
        // ----------------------------------------------------------------------------------
        var builder: AlertDialog.Builder? = null
        var alertDialog: AlertDialog? = null
        fun recycleAlert(mContext: Context?, setType: Int, header: String, content: String, ok: String, no: String) {

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

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

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

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

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

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

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

            try {
                Handler(Looper.getMainLooper()).postDelayed({ // [기존 활성화 된 팝업창 종료]

                    if (alertDialog != null) {
                        alertDialog!!.dismiss()
                        alertDialog = null
                    }

                    // [AlertDialog 팝업창 생성]
                    builder = AlertDialog.Builder(mContext)
                    builder!!.setTitle(header) //[팝업창 타이틀 지정]
                    // builder.setIcon(R.drawable.app_icon) //[팝업창 아이콘 지정]
                    builder!!.setMessage(content) //[팝업창 내용 지정]
                    builder!!.setCancelable(false) //[외부 레이아웃 클릭시도 팝업창이 사라지지않게 설정]
                    builder!!.setPositiveButton(ok) { dialog, which ->
                        // TODO Auto-generated method stub
                        // -----------------------------------------
                        // TODO [확인 버튼 클릭 이벤트 처리]
                        if (setType == 0) {
                        }
                        // -----------------------------------------
                        // [팝업창 null 처리]
                        if (alertDialog != null) {
                            alertDialog!!.dismiss()
                            alertDialog = null
                        }
                        // -----------------------------------------
                    }
                    builder!!.setNegativeButton(no) { dialog, which ->
                        // TODO Auto-generated method stub
                        // -----------------------------------------
                        // [팝업창 null 처리]
                        if (alertDialog != null) {
                            alertDialog!!.dismiss()
                            alertDialog = null
                        }
                        // -----------------------------------------
                    }
                    alertDialog = builder!!.create()
                    try {
                        alertDialog!!.show()
                    } catch (e: Exception) {
                        e.printStackTrace()
                    }
                }, 0)
            } catch (e: Exception) {
                e.printStackTrace()
            }
        }
 

[결과 출력]

 

 

반응형
Comments