안녕하세요, 하원입니다.
이번에는 안드로이드에서 사용하는 intent에 대해서 소개해보겠습니다.
여기 보이는 Activity1의 글씨를 누르면 intent를 생성하여 정보를 담아 Activity2로 보내지도록 해보겠습니다!intent 보내는 법
Activity1 글씨를 눌렀을 때 intent 생성 및 Activity2로 보내는 코드
binding.mainActivity1Tv.setOnClickListener {
val intent = Intent(this, Activity2::class.java)
intent.putExtra("activity1String", "Activity1's String")
intent.putExtra("activity1Int", 1)
startActivity(intent)
}
Intent(this, 데이터 받는 Activity::class.java)
=> 데이터를 받게 되는 activity의 이름을 써줍니다.
intent.putExtra("name", value)
=> value와 그에 맞는 name을 설정하여 값을 담아줍니다.
startActivity(intent)
=> intent를 통해 새로운 Activity를 호출해줍니다.
intent 받는 법
Activity1에서 intent를 Activity2로 보내는 코드를 썼다면 Activity2에서는 intent를 받는 코드를 써야겠죠?!
Activity2에서 intent를 받는 코드
if(intent.hasExtra("activity1String"))
{
getString = intent.getStringExtra("activity1String").toString()
}
if(intent.hasExtra("activity1Int"))
{
getInt = intent.getIntExtra("activity1Int", 0)
}
intent.hasExtra("name")
=> 아까 위에서 value와 함께 name을 설정해준 적이 있었죠?!
이렇게 intent에서 원하는 값을 찾을 때 name을 씁니다.
intent.get???Extra("name", default)
=> get 뒤에 ??? 라고 쓴 이유는 많은 type이 들어갈 수 있기 때문입니다!
hasExtra는 intent 속에 값이 들어있는지 확인하는 용도이고,
getExtra는 intent에서 값을 받아오는 함수입니다.
default는 name에 해당하는 value가 없을 때 필요한 값 입니다.
Log로 확인해보기
Log.d("getInfo", "getString : " + getString + ", getInt : "
+ getInt.toString())
=> Log를 통해 getString과 getInt 값을 확인해봅시다!
getString에 "Activity1's String", getInt에 1이 잘 들어왔네요ㅎㅎ
The End