데이터 : SendActivity → ReceiveActivity
class SendActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_send)
Log.d("Log","SendActivity")
val intent = Intent(this,ReceiveActivity::class.java)
intent.putExtra("key","12345") //key,전달할값
//startActivity(Intent(this@SendActivity, ReceiveActivity::class.java))
startActivity(intent) //이게 꼭 뒤에 와야한다!!!
}
}
Intent(현재 Activity, 값을 전달할 Activity)
putExtra
로 값 전달 : 데이터를 받을 때 키값으로 받는다.
페이지 전환(먼저) → 값 전달 (그 다) 그렇지 않으면 null 값이 반환 된다. (중요!!!)
페이지 이동과 값 전달은 같은 Activity에서 발생되어야 한다!!
class ReceiveActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_receive)
Log.d("Log","ReceiveActivity")
val data:String?
data = intent.getStringExtra("key")
Log.d("Log","value : " + data)
}
}
intent가 엑티비티 기본 속성이기 때문에 전달된 인텐트는 바로 호출해서 사용 가능
getStringExtra
로 값 받음 : 키값으로 받음getIntExtra
,getCharExtra
등 다양한 자료형 가능
값 받고 다시 보낼때, 꼭 변수로 만들어서 사용 해야 한다.
//ex (올바른 방식)
val username = intent.getStringExtra("username").toString() //받고
val intent = Intent(this, ProfileSettingActivity::class.java)
intent.putExtra("username", username) //보내기
//ex (잘못된 방식)
val intent = Intent(this, ProfileSettingActivity::class.java)
intent.putExtra("username", intent.getStringExtra("username").toString())