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()
}
}
}
'안드로이드' 카테고리의 다른 글
5.안드로이드 리싸이클러뷰 + [소스코드] (1) | 2022.02.04 |
---|---|
4.안드로이드 Fragment - navigationBar 작업 + [소스코드] (0) | 2022.02.03 |
2.안드로이드 getSharedPreferences (0) | 2022.02.02 |
1.안드로이드 retrofit 사용 따라하기 (0) | 2022.02.01 |