-
[안드로이드 - 코틀린] Intent로 데이터 전달하기Coding/Android 2019. 6. 23. 22:23
그동안 Intent를 통하여 액티비티 전환을 했지만, 사실 Intent는 해당 액티비티의 데이터를 담아 전달하는 역할도 합니다.
1. 데이터 담기
다음은 인텐트에 데이터를 담는 코드입니다. 간단한 예를 들어 몸무게와 키 값을 전달한다고 가정해볼게요.
putExtra 메소드를 이용하여 키와 값의 쌍으로 데이터를 저장합니다.
다음과 같은 경우는 String의 형태로
"weight"키에는 strWeight이
"height"키에는 strHeight이 저장되겠네요.
val intent = Intent(this, ResultActivity::class.java) intent.putExtra("weight", strWeight) intent.putExtra("height", strHeight)
저번 포스팅에도 Anko 라이브러리를 이용하면 Intent를 훨씬 쉽게 수행할 수 있다 했죠?
Anko 라이브러리를 이용하면 보다 더 간단하게 바뀝니다.
"weight" to strWeight "height" to strHeight
훨씬 간단하죠?
이제 이를 startActivity 안에 넣어주기만 하면 해당 액티비티로 데이터가 전달됩니다.
startActivity<ResultActivity>( "weight" to strWeight , "height" to strHeight)
2. 데이터 꺼내기
이제 Intent를 통해 저장하여 전달한 데이터를 꺼내서 다른 액티비티에서 사용해야겠죠?
데이터를 꺼낼떄는 getXXXExtra() 메소드를 사용합니다.
우리는 String의 형태로 데이터를 저장하였으니 꺼낼때는 getStringExtra() 메소드를 사용합니다.
val height = intent.getStringExtra("height").toInt() val weight = intent.getStringExtra("weight").toInt()
몸무게와 키 값은 정수형으로 바꿔 사용하기 위해 toInt() 메소드로 정수형으로 변환해줍니다.
이제 다른 액티비티에서 String 값을 전달하고, 다른 액티비티에서 그 데이터를 사용할 수 있도록 구현할 수 있겠네요!
'Coding > Android' 카테고리의 다른 글
[안드로이드] 레이아웃 수직/수평 n% 위치에 배치하기 (0) 2019.06.27 [안드로이드] 코틀린 기본 문법 - 7(형변환 + Java와의 차이) (0) 2019.06.24 [안드로이드 - 코틀린] 상위 액티비티 지정하기 (0) 2019.06.23 [안드로이드 - 코틀린] Anko 라이브러리를 이용한 Intent (0) 2019.06.23 [안드로이드 - 코틀린] ID 접근하기(Java와의 차이) (0) 2019.06.23