티스토리 뷰

반응형

Activity 종료시 intent로 이전 Activity에 값 전달하기

A 액티비티에서 B 액티비티를 열 때 intent와 startActivity를 활용해서 값을 넘겨줄 수 있다.

 

[Android][Kotlin] 액티비티간 값 전달, intent로 값 전달

firstActivity에서 secondActivity 화면을 띄울때 intent와 startActivity를 사용한다. 그때 값도 같이 전달하고 싶다면 중간데 intent.putExtra(KEY값, VALUE값)을 추가해주면 된다. firstActivity.kt val intent..

yuuj.tistory.com

그 후 B 액티비티를 종료하면 스택에 남아있는 순서대로 자연스럽게 다시 A 액티비티로 돌아오게 된다. 

이 때, 아까와는 반대로 B에서 A로 데이터를 넘겨주려면 어떻게 해야할까?

 

 

코드

FirstActivity에서 SecondActivity를 연 다음, SecondActivity를 종료하며 다시 FirstActivity에 값을 전달하도록 구성한 코드다. 각자 코드에 맞게 변경해야하는 부분은 대문자로 작성했다.

 

 

FirstActivity.kt

BUTTON.setOnClickListener {
val intent = Intent(this, SecondActivity::class.java)
    startActivityForResult(intent, CODE)
}

BUTTON을 눌러서 SecondActivity로 이동하는 코드다. startActivityForResult를 이용해서 intent를 CODE(아무 정수)를 넣어줬다. 여기서 정해준 CODE는 뒤에 onActivityResult에서 when문을 사용해 구분할 때 사용된다. 

 

 

SecondActivity.kt

intent.putExtra("memo", MEMO)
setResult(RESULT_OK, intent);
finish()

SecondActivity에서 액티비티 종료 전 FirstActivity로 넘겨줄 값을 저장하는 코드. 새로운 액티비티를 생성할때 값을 보내는 방법과 마찬가지로 intent.putExtra를 사용하며, "memo" 위치에는 값들을 구분 하기 위한 key 값을, MEMO에는 넘기고 싶은 value 값을 넣어주면 된다.

 

 

FirstActivity.kt

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
	super.onActivityResult(requestCode, resultCode, data)

    if (resultCode == RESULT_OK) {
        var MEMO = data?.getStringExtra("memo")!!
    }
}

SecondActivity가 넘긴 값을 받는 코드. onActivityResult를 오버라이드하면서 SecondActivity에서 "memo" 키로 넘겨준 MEMO값을 받아올 수 있다. 

 

 

 

참고

 

[Android] Activity 종료하면서 값 리턴하기

1. 개요 - Activity를 종료하면서 호출하였던 Activity에 값을 전달한다. 2. 내용 1) Activity Method...

blog.naver.com

 

인텐트로 다른 액티비티에 값 전달

출처: https://coding-factory.tistory.com/203 [Android] 인텐트(Intent) 화면 간 이동과 데이터 전달 어플리케이션을 만들때 하나의 화면을 가지고 어플리케이션을 만들지는 않죠. 하나의 화면에 모든기능을

acholyte.tistory.com

 

반응형