티스토리 뷰
[Android][Kotlin] Activity 종료시 intent로 이전 액티비티에 값 전달하기, onActivityResult
yoo.o 2021. 3. 9. 22:50Activity 종료시 intent로 이전 Activity에 값 전달하기
A 액티비티에서 B 액티비티를 열 때 intent와 startActivity를 활용해서 값을 넘겨줄 수 있다.
그 후 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값을 받아올 수 있다.
참고
- Total
- Today
- Yesterday
- 백준
- 안드로이드 키해시
- 안드로이드
- 코틀린 뷰바인딩
- 카카오 기출
- 투포인터 알고리즘
- 백준 2003
- 안드로이드 카카오톡으로 로그인
- 소수 구하기 파이썬
- Kotlin
- 데이터바인딩 뷰바인딩 차이
- 코틀린 바텀네비게이션
- 코틀린 리스트뷰
- 카카오 키해시
- 투포인터 알고리즘 파이썬
- counting sort
- 백준 1644
- 백준 1806
- 코틀린 데이터바인딩
- TextFormField keyboard
- kotlin fragment
- 파이썬 최대공약수
- 시뮬레이터 키보드
- 코틀린 뷰페이저
- 카카오톡으로 로그인 오류
- 코틀린
- 프로그래머스
- 백준알고리즘
- flutter simultor
- 전화번호목록 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |