투케이2K

853. (Android/Java) [유틸 파일] startActivityExtra : 액티비티 인텐트 이동 수행 및 데이터 전달 본문

Android

853. (Android/Java) [유틸 파일] startActivityExtra : 액티비티 인텐트 이동 수행 및 데이터 전달

투케이2K 2024. 8. 29. 20:02
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

 

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [startActivityExtra] : 액티비티 인텐트 이동 수행 및 데이터 전달
    // -----------------------------------------------------------------------------------------
    public static void startActivityExtra(Activity go, Class to, HashMap<String, String> parameters){

        /**
         * // -----------------------------------------
         * [startActivity 메소드 설명]
         * // -----------------------------------------
         * 1. 액티비티 인텐트 이동 수행 및 데이터 전달 수행
         * // -----------------------------------------
         * 2. 호출 방법 :
         *
         * C_Intent.startActivityExtra(A_Intro.this, A_Webview.class,
         *                 new HashMap<String, String>() {{
         *                     put("name", "twok");
         *                     put("age", "30");
         *                 }}
         *         );
         * // -----------------------------------------
         * */

        try {

            if (go != null && to != null){
                // ===============================================================
                S_Log._D_("액티비티 인텐트 이동 수행 및 데이터 전달 수행", new String[]{
                        "GO :: " + String.valueOf(go.getComponentName().getClassName()),
                        "TO :: " + String.valueOf(to.getName()),
                        "PARAMS :: " + String.valueOf(parameters)
                });
                // ===============================================================

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

                if (parameters != null && parameters.size()>0 && parameters.isEmpty() == false){
                    Set set = parameters.keySet();
                    Iterator iterator = set.iterator();
                    while(iterator.hasNext()){
                        String key = (String) iterator.next();
                        String value = parameters.get(key);

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

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

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

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

 

반응형
Comments