[Android] Activity 간 데이터 전달 (kotlin)

이도연·2023년 9월 25일
0

android studio

목록 보기
13/28

Extras 에 값을 저장하는 메소드

Intent putExtra(String name, int value)
Intent putExtra(String name, String value)
Intent putExtra(String name, boolean value)

Extras 에 저장된 값을 읽는 메소드

int getIntExtra(String name, int defaultValue)
String getStringtExtra(String name)
boolean getBooleanExtra(String name, boolean defaultValue)





SignUpActivity.kt

// name, id 데이터를 HomeActivity로 전달
// HomeActivity로 이동
val intent = Intent(this, HomeActivity::class.java)
val nameData = binding.etName.text.toString()
val idData = binding.etId.text.toString()
Log.d(TAG, "name, id data 전달")
intent.putExtra("dataFromSignUpActivity", nameData)
intent.putExtra("dataFromSignUpActivity", idData)
startActivity(intent)





HomeActivity.kt

// name, id 데이터를 SignUpActivity 로부터 전달받음
Log.d(TAG, "name, id Data 전달 받음")
val nameData = intent.getStringExtra("dataFromSignUpActivity")
val idData = intent.getStringExtra("dataFromSignUpActivity")
val editText = binding.etName
editText.setText(nameData)
editText.setText(idData)



이런 식으로 짜니까 name 데이터만 전달되었다.
"dataFromSignUpActivity"라는 같은 키를 사용하여 덮어쓰기가 발생한 결과, "HomeActivity"에서는 "idData"만 수신되고 "nameData"는 누락되는 문제가 발생했다.

"nameData"와 "idData" 모두 "HomeActivity"로 전송하기 위해, 각 데이터 항목에 대해 고유한 키를 할당했다.

0개의 댓글