728x90
intent에 데이터 셋팅하기
Activity를 실행하기 위해 사용하는 Intent 객체에 데이터를 저장할 수 있다.
putExtra 메서드를 통해 데이터 저장이 가능하며 데이터가 저장된 Intent는 실행되는 Activity까지 전달된다.
이를 통해 Intent에 저장된 데이터를 추출할 수 있다.
Intent는 Activity를 종료하고 돌아갈 때도 전달 할 수 있다.
intent에 데이터 가져오기
전달된 Intent 에 저장된 데이터는 getXXXExtra 메서드를 통해 추출할 수 있다.
이 메서드는 자료형 별로 이름이 다르므로 자료형에 맞는 메서드를 사용해야 한다
메인 액티비티
package com.example.activitydata
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
val SECOND_ACTIVITY = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
val second_intent = Intent(this,SecondActivity::class.java)
second_intent.putExtra("data1",100)
second_intent.putExtra("data2",10.11)
second_intent.putExtra("data3",true)
second_intent.putExtra("data4","문자열1")
startActivityForResult(second_intent,SECOND_ACTIVITY)
}
}
// second activity에서 데이터를 저장한 intent가 3번째 매개변수인 data에 들어오게 된다.
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == SECOND_ACTIVITY) {
if (requestCode == RESULT_OK) {
val value1 = data?.getIntExtra("value1",0)
val value2 = data?.getDoubleExtra("value2",0.0)
val value3 = data?.getBooleanExtra("value3",false)
val value4 = data?.getStringExtra("value4")
textView.text="value1 : $value1\n"
textView.append("value2 : $value2\n")
textView.append("value3 : $value3\n")
textView.append("value4 : $value4\n")
}
}
}
}
세컨드 액티비티
package com.example.activitydata
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_second.*
class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
// 현재 액티비를 실행하기 위해 사용한 인텐트로 부터 데이터를 추출한다.
val data1 = intent.getIntExtra("data1",0)
val data2 = intent.getDoubleExtra("data2",0.0)
val data3 = intent.getBooleanExtra("data3",false)
val data4 = intent.getStringExtra("data4")
textView2.text = "data1 : $data1\n"
textView2.append("data2 : $data2\n")
textView2.append("data3 : $data3\n")
textView2.append("data4 : $data4\n")
button2.setOnClickListener {
val result_intent = Intent()
result_intent.putExtra("value1",200)
result_intent.putExtra("value2",22.22)
result_intent.putExtra("value3",false)
result_intent.putExtra("value4","문자열2")
setResult(RESULT_OK,result_intent)
finish()
}
}
}
728x90
'안드로이드 > Activity' 카테고리의 다른 글
안드로이드 다른 애플리케이션의 액티비티 실행 (0) | 2022.06.09 |
---|---|
안드로이드 객체 전달 (0) | 2022.06.09 |
안드로이드 OnActivityResult (0) | 2022.06.09 |
안드로이드 Activity 실행하기 (0) | 2022.06.09 |
안드로이드 Activity 생명주기 (0) | 2022.06.09 |