본문 바로가기

Dead Code/DEPRECATED-KOTLIN

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


여전히 어디에 사용할수 있는 메소드인지 알수는 없지만, 

강좌에 있으니까 한번 해보자. 


썩 어렵지는 않은데 왜 이리 암기가 안되지 ㅋ


두번째 액티비티에서 돌아올때 값을 물고 온다. 


OK는 -1, Cancel은 0, FirstUser는 1이다. 



[메인액티비티]

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)
startActivityForResult(intent, 100)
}

a1_btn2.setOnClickListener {
var intent = Intent(this, Main3Activity::class.java)
startActivityForResult(intent, 101)
}

a1_btn3.setOnClickListener {
finish()
}

}

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

when(requestCode) {
100 -> {
a1_txt2.text = "Back From 2nd Activity,,,\n"
when(resultCode) {
Activity.RESULT_OK -> a1_txt2.append("${resultCode} : RESULT OK")
Activity.RESULT_CANCELED -> a1_txt2.append("${resultCode} : RESULT CANCELED")
Activity.RESULT_FIRST_USER -> a1_txt2.append("${resultCode} : RESULT FIRST_USER")
}

}
101 -> a1_txt2.text = "Back From 3rd Activity"
}

}
}



[두번째액티비티]

class Main2Activity : AppCompatActivity() {

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

a2_btn1.setOnClickListener {
setResult(Activity.RESULT_OK)
finish()
}

a2_btn2.setOnClickListener {
setResult(Activity.RESULT_CANCELED)
finish()
}

a2_btn3.setOnClickListener {
setResult(Activity.RESULT_FIRST_USER)
finish()
}



}
}





[세번째액티비티]


class Main3Activity : AppCompatActivity() {

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

a3_btn1.setOnClickListener {
finish()
}

}
}