StartActivityForResult
프로젝트를 진행 하면서 내 경험상으로는 Image 객체가 들어있는 ArrayList 자체를 Intent 를 통해 넘겨야 할 상황이 있었음.
보내는 부분은 PutExtra 를 통해 가지만
intent.putExtra("Image",viewModel.ImageData)
받는 부분은 onActivityResult 의 data로 가게끔 startActivityForResult 를 써줬다.
이해 안갔던 점은 onActivityResult 의 data 타입은 intent 인데
내가 보내는 데이터 타입은 ArrayList 라는 것 이다.
해결 ----
data.getSerializableExtra("Image")
여기서 또 다른 중요한 부분은 데이터 클래스 는 Serializable 을 상속 받아야 한 다는 것 !
내 소스코드
.Main.kt
//사진 선택
private fun PhotoSelect() {
val intent = Intent(this,User_SignUp_PopUp::class.java)
startActivityForResult(intent,200)
}
//사진 선택 후 돌아오는 데이터 받기
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if(requestCode==200) {
if(resultCode == Activity.RESULT_OK){
data?.getSerializableExtra("Image")
}
}
}
.User_SignUp_PopUp.kt
btn_PhotoSavePopup.setOnClickListener {
//이미지 uri 객체를 회원가입 페이지로 보내줌.
//이부분에서 데이터를 보내주면서 dialog를 띄우는 것도 좋을 듯 .
val intent = Intent()
intent.putExtra("Image",viewModel.dataImage)
setResult(Activity.RESULT_OK,intent)
//액티비티 팝업 닫기
finish()
}
StartActivityForResult
프로젝트를 진행 하면서 내 경험상으로는 Image 객체가 들어있는 ArrayList 자체를 Intent 를 통해 넘겨야 할 상황이 있었음.
보내는 부분은 PutExtra 를 통해 가지만
intent.putExtra("Image",viewModel.ImageData)받는 부분은 onActivityResult 의 data로 가게끔 startActivityForResult 를 써줬다.
이해 안갔던 점은 onActivityResult 의 data 타입은 intent 인데
내가 보내는 데이터 타입은 ArrayList 라는 것 이다.
해결 ----
data.getSerializableExtra("Image")여기서 또 다른 중요한 부분은 데이터 클래스 는 Serializable 을 상속 받아야 한 다는 것 !
내 소스코드
.Main.kt
.User_SignUp_PopUp.kt