투케이2K

427. (kotlin/코틀린) 안드로이드 ActivityResultLauncher 사용해 intent 인텐트 이동 및 콜백 응답 결과 확인 본문

Kotlin

427. (kotlin/코틀린) 안드로이드 ActivityResultLauncher 사용해 intent 인텐트 이동 및 콜백 응답 결과 확인

투케이2K 2023. 10. 31. 18:04

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

// --------------------------------------------------------------------------------------------------
[resultLauncher.launch 인텐트 이동 : 소스 코드]
// --------------------------------------------------------------------------------------------------

                    if (Arrays.toString(fileChooserParams?.acceptTypes).contains("image")) {
                        val intent = Intent(Intent.ACTION_PICK) // 갤러리 지정
                        intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) // 사진 다중 선택 지정
                        intent.type = "image/*" // 이미지 파일 타입 지정
                        intent.data = MediaStore.Images.Media.EXTERNAL_CONTENT_URI // 미디어 스토어 사용 [이미지]
                        resultLauncher.launch(intent) // [startActivityForResult]
                    }





// --------------------------------------------------------------------------------------------------
[resultLauncher callback 콜백 이벤트 확인 : 소스 코드]
// --------------------------------------------------------------------------------------------------

    ActivityResultLauncher<Intent> resultLauncher = registerForActivityResult(
            new ActivityResultContracts.StartActivityForResult(),
            new ActivityResultCallback<ActivityResult>() {
                @Override
                public void onActivityResult(ActivityResult result){
                    S_Log._F_(A_Webview.this, "ActivityResultLauncher :: 인텐트 응답 결과 확인", new String[]{
                            "RESULT :: " + String.valueOf(result)
                    });


                    // -----------------------------------------
                    // TODO [정상적으로 응답을 받은 경우]
                    // -----------------------------------------
                    if(result.getResultCode() == RESULT_OK){

                        // -----------------------------------------
                        // [인텐트 데이터 얻어 온다]
                        // -----------------------------------------
                        Intent intent = result.getData();
                        // -----------------------------------------

                    }

                }
            });

 

반응형
Comments