투케이2K

524. (kotlin/코틀린) [유틸 파일] startActivityExtra : 액티비티 인텐트 이동 수행 및 데이터 전달 본문

Kotlin

524. (kotlin/코틀린) [유틸 파일] startActivityExtra : 액티비티 인텐트 이동 수행 및 데이터 전달

투케이2K 2024. 8. 29. 20:05

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

        // -----------------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [startActivityExtra] : 액티비티 인텐트 이동 수행 및 데이터 전달
        // -----------------------------------------------------------------------------------------
        fun startActivityExtra(go: Activity?, to: Class<*>?, parameters: HashMap<String, String>?) {
            /**
             * // -----------------------------------------
             * [startActivity 메소드 설명]
             * // -----------------------------------------
             * 1. 액티비티 인텐트 이동 수행 및 데이터 전달
             * // -----------------------------------------
             * 2. 호출 방법 :
             *
             * C_Intent.startActivityExtra(this@A_Intro, A_Webview::class.java,
             *      object : HashMap<String, String>() {
             *        init {
             *           put("name", "twok")
             *           put("age", "30")
             *        }
             *     }
             * )
             * // -----------------------------------------
             */

            try {

                if (go != null && to != null) {
                    // ===============================================================
                    S_Log._D_("액티비티 인텐트 이동 수행 및 데이터 전달 수행", arrayOf(
                        "GO :: " + go.componentName.className,
                        "TO :: " + to.name.toString(),
                        "PARAMS :: " + parameters.toString()
                    ))
                    // ===============================================================

                    // [인텐트 이동 실시]
                    val intent = Intent(go, to)
                    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)

                    if (parameters != null && parameters.size > 0 && parameters.isEmpty() == false) {

                        val set: Set<*> = parameters.keys
                        val iterator = set.iterator()

                        while (iterator.hasNext()) {
                            val key = iterator.next() as String
                            val value = parameters[key]

                            // [인텐트 데이터 추가]
                            intent.putExtra(key, value)

                            S_Log.w("Intent Put Data", "$key / $value")
                        }
                    }

                    go.startActivity(intent)

                } else {
                    S_Log._E_("[Error] : 액티비티 인텐트 이동 화면 전환 수행", arrayOf("Input Class Is Null"))
                }

            } catch (e: Exception) {
                S_Log._printStackTrace_(go, S_FinalData.LOG_BUG_STATE, null, e)
            }
        }

 

반응형
Comments