3.안드로이드 Intent 데이터와 화면전환

3.안드로이드 Intent 데이터와 화면전환

 

 

1.메인 화면에서 버튼과 버튼 이벤트를 추가하고 아래와 같이 작성해준다.

 

//서브화면에서 전달한 데이터를 받기위한 전역변수
private lateinit var getResultText:ActivityResultLauncher<Intent>

//서브화면에서 전달한 데이터 받기
getResultText = registerForActivityResult(ActivityResultContracts.StartActivityForResult()){ result ->
    if(result.resultCode == RESULT_OK){
        val mString = result.data?.getStringExtra("param2")
        Log.d(Constant.TAG , "registerForActivityResult : ${mString}")
    }
}

//서브화면으로 데이터 전달하기
buttonOne.setOnClickListener {
    val intent = Intent(this,SubVC::class.java)
    intent.putExtra("param","실제값입니다!")
    getResultText.launch(intent)
}

 

 

2.서브화면에는 메인화면에서 전달한 파라미터를 받기위한 로직을 작성해준다.

 

class SubVC : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_sub_vc)

        //메인화면에서 전달한 파라미터 받기
        val param = intent.getStringExtra("param")
        Log.d("sub액티비티 ", "param = ${param}")
        
        
        //메인화면으로 데이터 전달하기+스택에서 삭제
        btn_Two.setOnClickListener {
            val intent = Intent()
            intent.putExtra("param2", "10000만원 받으세요~")
            setResult(Activity.RESULT_OK, intent)
            finish()
        }
    }
}