1.MainActivity
package com.lion.activityintentex
import android.content.Intent
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.lion.activityintentex.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var activityMainBinding: ActivityMainBinding
private lateinit var firstActivityLauncher: ActivityResultLauncher<Intent>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
activityMainBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(activityMainBinding.root)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
firstActivityLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()){
activityMainBinding.textView4.text = "FirstActivity 실행 후 돌아왔습니다"
when(it.resultCode){
RESULT_OK -> {
activityMainBinding.textView4.text = "value1 : ${it.data?.getIntExtra("value1", 0)}"
}
RESULT_CANCELED ->{
activityMainBinding.textView4.text = "취소되었습니다"
}
}
}
activityMainBinding.apply {
button.setOnClickListener {
// 런처를 통해 Activity를 실행한다.
val firstIntent = Intent(this@MainActivity, FirstActivity::class.java)
firstIntent.putExtra("value1",111)
firstActivityLauncher.launch(firstIntent)
}
}
}
}
2. FirstActivity
import android.content.Intent
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.lion.activityintentex.databinding.ActivityFirstBinding
class FirstActivity : AppCompatActivity() {
lateinit var activityFirstBinding: ActivityFirstBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
activityFirstBinding = ActivityFirstBinding.inflate(layoutInflater)
setContentView(activityFirstBinding.root)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
activityFirstBinding.apply {
textView.text = "value1 : ${intent.getIntExtra("value1",0)}"
button4.setOnClickListener {
val finishIntent = Intent()
finishIntent.putExtra("value1",777)
setResult(RESULT_OK,finishIntent)
finish()
}
}
}
}