투케이2K

525. (kotlin/코틀린) [유틸 파일] getIntentToMap : getIntent 데이터 확인 및 Map 반환 실시 본문

Kotlin

525. (kotlin/코틀린) [유틸 파일] getIntentToMap : getIntent 데이터 확인 및 Map 반환 실시

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

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

        // -----------------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [getIntentToMap] : getIntent 데이터 확인 및 Map 반환 실시
        // -----------------------------------------------------------------------------------------
        fun getIntentToMap(intent: Intent?): HashMap<String, String>? {

            /**
             * // -----------------------------------------
             * [getIntentToMap 메소드 설명]
             * // -----------------------------------------
             * 1. getIntent 데이터 확인 및 Map 반환 실시
             * // -----------------------------------------
             * 2. 호출 방법 :
             *
             * var intent = Intent()
             * intent.putExtra("name", "twok")
             * intent.putExtra("age", "age")
             *
             * C_Intent.getIntentToMap(intent)
             * // -----------------------------------------
             */

            // [리턴 변수 선언]
            var returnData: java.util.HashMap<String, String>? = null

            // [로직 처리 수행]
            try {
                if (intent != null && intent.extras != null) {
                    S_Log.w("DEBUG_LOG", "getIntentToMap :: getExtras :: " + intent.extras.toString())

                    val bundle = intent.extras
                    if (bundle != null && bundle.isEmpty == false && bundle.keySet().size > 0) {

                        returnData = HashMap()

                        val set: Set<*> = bundle.keySet()
                        val iterator = set.iterator()
                        while (iterator.hasNext()) {
                            val key = iterator.next() as String
                            val value = bundle.getString(key)

                            returnData[key] = value.toString() // [리턴 맵에 추가]
                        }

                    } else {
                        S_Log._E_("[Error] : getIntent 데이터 확인 및 Map 반환 에러", arrayOf("Bundle Is Null"))
                    }

                } else {
                    S_Log._E_("[Error] : getIntent 데이터 확인 및 Map 반환 에러", arrayOf("Input Intent Is Null"))
                }

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

            // [로그 출력]
            S_Log._D_("getIntent 데이터 확인 및 Map 반환 수행", arrayOf("returnData :: " + returnData.toString()))

            // [리턴 데이터 반환]
            return returnData
        }

 

반응형
Comments