본문 바로가기

Dead Code/DEPRECATED-KOTLIN

[코틀린코드연습장] startActivityForResult(2)



다른 액티비티로, 종료시점에 

데이터를 보내는 방식이다.



[메인액티비티]

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

a1_btn1.setOnClickListener {
var intent = Intent(this, Main2Activity::class.java)
intent.putExtra("String", "StringData")
intent.putExtra("Int", 1)
intent.putExtra("Double", 1.0)
intent.putExtra("Boolean", true)
startActivityForResult(intent, 1)
}
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)

if(resultCode == Activity.RESULT_OK) {
a1_txt1.text = "${data?.getStringExtra("String")}\n" +
"${data?.getIntExtra("Int",0)}\n" +
"${data?.getDoubleExtra("Double", 0.0)}\n" +
"${data?.getBooleanExtra("Boolean", false)}"
}
}
}



[액티비티1]

class Main2Activity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)

var data1 = intent.getStringExtra("String")
var data2 = intent.getIntExtra("Int", 0)
var data3 = intent.getDoubleExtra("Double", 0.0)
var data4 = intent.getBooleanExtra("Boolean", false)

a2_txt1.text = "${data1} ::: ${data2}\n" +
"${data3}:::${data4}"

a2_btn1.setOnClickListener {
var intent = Intent(this, MainActivity::class.java)
intent.putExtra("String", "StringExtra")
intent.putExtra("Int", 1)
intent.putExtra("Double", 1.0)
intent.putExtra("Boolean", true)
setResult(Activity.RESULT_OK, intent)
finish()
}
}
}