이번엔 AndroidStudio에서 Intent를 사용하여 Activity간의 이동을 해볼 것
MainActivity.kt
class MainActivity : AppCompatActivity() {
// viewBinding
val binding by lazy {
ActivityMainBinding.inflate(layoutInflater)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
// intent 설정=>SubActivity로 이동
val intent = Intent(this, SubActivity::class.java)
// SubActivity에서 값 받아오기
val activityResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
if (it.resultCode == RESULT_OK) {
val msg :String? = it.data?.getStringExtra("msg")
Toast.makeText(this, msg, Toast.LENGTH_LONG).show()
}
}
// 화면 이동 버튼
binding.btnIntent.setOnClickListener {
// intent 동작
activityResult.launch(intent)
}
}
}
SubActivity.kt
class SubActivity : AppCompatActivity() {
val binding by lazy {
ActivitySubBinding.inflate(layoutInflater)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
// 여기 intent는 다시 MainActivity로 돌아갈거라 Intent()로 작성
val returnIntent = Intent()
// MainActivity로 돌아가는 버튼
binding.returnBtn.setOnClickListener {
returnIntent.putExtra("msg", binding.editTxt.text.toString())
// intent 설정(resultcode, intent)
setResult(RESULT_OK, returnIntent)
// Activity 파괴
finish()
}
}
}