반응형
Intent에 데이터 셋팅해 데이터 전달하기
- 액티비티를 실행하기 위해 사용하는 intent 객체에 데이터를 저장
- putExtra 메서드를 통해 데이터 저장이 가능, 데이터가 저장된 Intent는 실행되는 액티비티까지 전달 -> 저장된 데이터를 추출해 사용
- Intent는 Activity를 종료하고 돌아가도 전달이 가능 -> 종료할 때 Intent 객체를 만들어 데이터를 담고 setResult() 메서드를 통해resultCode 와 intent 객체를 함께 전달 ->다시 돌아온 액티비티에서 역시 저장된 데이터를 추출해 사용
Activity를 실행하기 위해 전달하는 intent에 데이터를 저장해 전달
/* 원래 액티비티 MainActivity.kt */
val second_intent = Intent(this, SecondActivity::class.java)
second_intent.putExtra("data1",100) //저장할때 쓰이는 이름, 실제 저장할 값
second_intent.putExtra("data2",11.11)
second_intent.putExtra("data3",true)
second_intent.putExtra("data4","apple")
// intent 객체를 전달해 실행시킴
activityResultLauncher.launch(second_intent)
/* 새로 실행한 액티비티 SecondActivity.kt */
//현재 액티비티를 실행하기 위해 사용한 intent로 부터 전달받은 데이터 추출해 사용
val data1 = intent.getIntExtra("data1",0) //이름으로 값 추출, 만약 없다면 가져올 default 값 설정
val data2 = intent.getIntExtra("data2",0)
val data3 = intent.getBooleanExtra("data3",false)
val data4 = intent.getStringExtra("data4")
second_binding.textView2.text = "data1 : ${data1}\n"
second_binding.textView2.append("data2 : ${data2}\n")
second_binding.textView2.append("data3 : ${data3}\n")
second_binding.textView2.append("data4 : ${data4}")
Activity 종료후, 이전 Activity로 돌아갈때 intent에 데이터를 저장해 전달
// 현재 액티비티 종료후 이전 액티비티로 돌아감
second_binding.button2.setOnClickListener {
val result_intent = Intent()
result_intent.putExtra("value1",200)
result_intent.putExtra("value2",true)
result_intent.putExtra("value3","asdf")
setResult(100,result_intent) // resultCode : code 값, Intent(선택적) : 전달할 데이터를 Intent 객체로 만들어 저장
finish() // 현재 액티비티 종료
}
반응형
'Android' 카테고리의 다른 글
[안드로이드/Activity] 다른 애플리케이션의 액티비티 실행 (0) | 2023.03.25 |
---|---|
[안드로이드/Activity] 객체 전달하기 (0) | 2023.03.18 |
[안드로이드] CallBack 과 Listener (0) | 2023.03.11 |
[안드로이드/Activity] OnActivityResult 와 registerForActivityResult (0) | 2023.03.10 |
[안드로이드/Activity] Intent 와 Activity 실행 (0) | 2023.03.10 |