투케이2K

197. (kotlin/코틀린) [유틸 파일] callAlert : Alert 팝업창 호출 및 확인 , 취소 버튼 클릭 이벤트 콜백 확인 메소드 본문

Kotlin

197. (kotlin/코틀린) [유틸 파일] callAlert : Alert 팝업창 호출 및 확인 , 취소 버튼 클릭 이벤트 콜백 확인 메소드

투케이2K 2023. 1. 17. 20:56

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

        // TODO [SEARCH FAST] : [CALLBACK] : [Alert 팝업창 호출 처리 메소드]
        fun callAlert (mContext: Context, header: String, content: String, ok: String, no:String, myCallBack: (result: Boolean) -> Unit){

            /* TODO [메소드 호출 방법]
            C_Ui_View.callAlert(A_Intro@this, "알림", "내용", "확인", "취소") { result ->
                if (result == true){
                    Log.i("---","---")
                    Log.d("//===========//","================================================")
                    Log.i("","\n"+"[" + ACTIVITY_NAME + " >> 확인 버튼 클릭]")
                    Log.d("//===========//","================================================")
                    Log.i("---","---")
                }
                else {
                    Log.i("---","---")
                    Log.e("//===========//","================================================")
                    Log.i("","\n"+"[" + ACTIVITY_NAME + " >> 취소 버튼 클릭]")
                    Log.e("//===========//","================================================")
                    Log.i("---","---")
                }
            }
            // */

            // [로직 처리 실시]
            try {
                // -----------------------------------------
                // [타이틀 및 내용 표시]
                val Title = header
                val Message = content
                // -----------------------------------------
                // [버튼 이름 정의]
                val buttonYes = ok
                val buttonNo = no
                // -----------------------------------------
                // [AlertDialog 팝업창 생성]
                Handler(Looper.getMainLooper()).postDelayed({ // TODO [핸들러 루퍼 사용 : UI 스레드]

                    AlertDialog.Builder(mContext)
                        .setTitle(Title) //[팝업창 타이틀 지정]
                        //.setIcon(R.drawable.app_icon) //[팝업창 아이콘 지정]
                        .setMessage(Message) //[팝업창 내용 지정]
                        .setCancelable(false) //[외부 레이아웃 클릭시도 팝업창이 사라지지않게 설정]
                        .setPositiveButton(buttonYes, DialogInterface.OnClickListener { dialog, which ->
                            // TODO Auto-generated method stub
                            // -----------------------------------------
                            // TODO [확인 버튼 클릭 이벤트 처리]
                            myCallBack.invoke(true)
                            // -----------------------------------------
                        })
                        .setNegativeButton(buttonNo, DialogInterface.OnClickListener { dialog, which ->
                            // TODO Auto-generated method stub
                            // -----------------------------------------
                            // TODO [취소 버튼 클릭 이벤트 처리]
                            myCallBack.invoke(false)
                            // -----------------------------------------
                        })
                        .show()

                },0)
                // -----------------------------------------
            }
            catch (e: Exception) {
                e.printStackTrace()
            }
        }

 

반응형
Comments