[안드로이드][Kotlin] View 형식에 따른 Intent 데이터 주고받기

졸업 프로젝트를 위해 프로토타입을 만들던 중 될 것 같던 부분이 안되어 해결 후 정리해보았다.

하나의 액티비티에서 데이터를 다른 액티비티로 보내기 위해선 intent 객체를 만들어 putExtra() 메소드로 데이터를 묶어 보낸다. 그리고 받는 액티비티에선 getXXExtra() (XX는 자료형) 메소드로 데이터를 받는 것이 기본적이다.

간단한 회원가입 레이아웃을 만들고, 사용자가 Plain Text View에 학번(StudentID)을 입력한다. 제출 버튼을 누르면 해당 액티비티 VerifyEmailActivity 에 보내고, 동일한 Plain Text 에 입력했던 아이디가 그대로 나타나는 로직을 구현하고 싶었다.

사용자가 한번 더 입력할 필요없이 한번 입력했던 학번이 자동으로 표시되도록 만들고 싶었다.

1
2
3
4
// 데이터 보내는 액티비티
val intent = Intent (this, VerifyEmailActivity::class.java)
intent.putExtra("studentID",studentID.text.toString())
startActivity(intent)
1
2
3
// 데이터 받는 액티비티
var studentID = intent.getStringExtra("studentID")
TextView.text = studentID //오류가 난 부분

TextView는 사용자의 직접 입력없이 설정한 text만 설정하면 보여지는 View이기에 이렇게 간단하게 원하는 Text를 인텐트로 받아 설정할 수 있었다. 하지만 사용자가 입력한 Text가 인텐트로 보냈을 시 받는 View의 상태가 만약 똑같은 Plain Text라면 다음 코드 처럼 작성해야 한다는 것을 알게 되었다.
1
2
3
4
5
6
7
8
//코드 수정 Plain Text -> Plain Text
var studentID = intent.getStringExtra("studentID")
if (!studentID.isNullOrEmpty()) {
studentIDText.setText(studentID) //setText method 사용
}
else {
...
}

[안드로이드][Kotlin] View 형식에 따른 Intent 데이터 주고받기

https://msj0319.github.io/2020/03/11/안드로이드-View-형식에-따른-Intent-데이터-주고받기/

Author

MoonDoni

Posted on

2020-03-11

Updated on

2021-03-15

Licensed under

댓글