불로구

안드로이드 스튜디오 - Intent 값 반환 받기 (2) 본문

카테고리 없음

안드로이드 스튜디오 - Intent 값 반환 받기 (2)

맹이맹이 2021. 4. 10. 21:48
반응형

cometome1004.tistory.com/141

 

안드로이드 스튜디오 - Intent (1)

Intent란? - 의도, 요구, 의사 전달, 요청 - 요청 관계 -> 액티비티와 액티비티 -> 안드로이드 시스템과 myApp -> 다른 앱과 내 앱 ( 상호합의 필요) - 요청의 전달 -> 전달만 하는 요청 -> 리턴을 받는 요

cometome1004.tistory.com

앞 포스팅에서는 Intent로 전환할 액티비티에 값을 전달하였다.

 

이번엔 그 전 액티비티에 값을 반환하는 법을 알아보자

 

값을 전달만 할 때에는 Intent를 startActivity()를 통해 실행하였지만 반환값을 전달받을 경우에는

startActivityForResult()를 사용한다. -> startActivityForResult(intent, 200)  -> 200은 requestCode이다.

 

메인 액티비티에서 startActivityForResult를 이용해서 값을 전달 후 다음 액티비티에서는

            var intent = Intent()
            intent.putExtra("result", return_VALUE.toString())
            setResult(Activity.RESULT_OK, intent)
            this.finish()
            

인텐트를 만들고 key와 value를 설정해준다.

setResult()를 통해 상태와 인텐트를 설정하고 finish()를 통해 종료를 하면 이전 액티비티로 넘어간다.

 

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if(requestCode == 200) {
            val result = data?.getStringExtra("result")
            result_value.text = result.toString()
        }
    }

이전 액티비티에서는 onCreate()가 아닌 onActivityResult()를 통해 전달했던 requestCode와 일치한다면

원하는 로직을 작성하면 된다.

반응형
Comments