1. Intent에 데이터 셋팅하기
- Activity를 실행하기 위해 사용하는 Intent 객체에 putExtra() 메서드를 이용하여 데이터를 세팅하면 실행되는 Activity에 서 데이터를 전달받을 수 있다.
- putExtra() 메서드는 자료형 별로 메서드가 제공되기 때문에 타입을 가리지 않는다.
2. Intent에서 데이터 가져오기
- Intent에 셋팅된 데이터는 getXXXExtra() 메서드를 이용해서 가져오면 된다.
- 자료형별로 메서드가 제공되므로 가져오고자 하는 데이터 타입에 맞는 메서드를 이용하여 가져온다.
3. 예제가 중요함 - main에서 second에 전달하고, second도 main에 전달함.
main
class MainActivity : AppCompatActivity() {
private val SECOND_ACTIVITY = 1
private val THIRD_ACTIVITY = 2
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 1. 버튼을 눌러서 두번째 액티비티를 실행시킨다.
button2.setOnClickListener { view ->
// 2. 인텐트 객체 생성
var intent = Intent(this, SecondActivity::class.java)
// 3. Intent에 데이터 세팅.
intent.putExtra("data1", 100)
intent.putExtra("data2", 11.11)
intent.putExtra("data3", true)
intent.putExtra("data4", "문자열")
startActivityForResult(intent, SECOND_ACTIVITY)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
// 7. 세컨드 액티비티에서 넘어온 intent에서 데이터를 뽑는다.
if(resultCode == Activity.RESULT_OK)
{
var value1 = data?.getIntExtra("value1", 0)
var value2 = data?.getDoubleExtra("value2", 0.0)
var value3 = data?.getBooleanExtra("value3", false)
var value4 = data?.getStringExtra("value4")
textView.text = "data1 = ${value1}\n"
textView.append("data2 = ${value2}\n")
textView.append("data3 = ${value3}\n")
textView.append("data4 = ${value4}\n")
}
}
}
second
class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
// 4. 데이터 받아오기. 만일 올 데이터가 없으면 두 번째 매개변수인 defaultvalue가 들어간다.
var data1 = intent.getIntExtra("data1", 0)
var data2 = intent.getDoubleExtra("data2", 0.0)
var data3 = intent.getBooleanExtra("data3", false)
var data4 = intent.getStringExtra("data4")
textView2.text = "data1 = ${data1}\n"
textView2.append("data2 = ${data2}\n")
textView2.append("data3 = ${data3}\n")
textView2.append("data4 = ${data4}\n")
button10.setOnClickListener { view ->
// 5. Main Activity로 전달할 때 데이터를 전달
var intent2 = Intent()
intent2.putExtra("value1", 200)
intent2.putExtra("value2", 22.22)
intent2.putExtra("value3", true)
intent2.putExtra("value4", "문자열2")
setResult(RESULT_OK, intent2)
finish()
}
}
}
'Deperecated > Android_강의' 카테고리의 다른 글
안드로이드 - 다른 애플리케이션의 액티비티 실행하기 (0) | 2020.02.18 |
---|---|
안드로이드 - 객체 전달하기 (0) | 2020.02.18 |
안드로이드 - OnResultActivity (0) | 2020.02.18 |
안드로이드 - 안드로이드 4대 구성 요소 - Activity 실행하기 (0) | 2020.02.18 |
안드로이드 - RunOnUiThread (0) | 2020.02.18 |