.User_SignUp_PopUp.kt
//이미지 uri 객체를 회원가입 페이지로 보내줌.
// ViewModel 의 dataImage가 직렬화가 되어야 하는 문제점.
val intent = Intent()
val data = viewModel.dataImage as Serializable
var bundle =Bundle()
bundle.putSerializable("Image",data)
intent.putExtras(bundle)
setResult(Activity.RESULT_OK, intent)
//액티비티 팝업 닫기
finish()
데이터를 관리하는 ViewModel 의 data를 직렬화 시켜야 intent 를 통해서 회원가입 페이지로 Image 가 전송된다.
java.lang.RuntimeException: Parcelable encountered IOException writing serializable object
에러는 ViewModel 의 dataImage도 직렬화 시켜 줘야 한다고 함.
class DataViewModel : ViewModel(){
val data = ArrayList<DataSignUp>()
var dataImage = ArrayList<DataImage>()
val LiveData = MutableLiveData<ArrayList<DataSignUp>>()
val LiveDataImage = MutableLiveData<ArrayList<DataImage>>()
fun setDataImage(item : List<com.esafirm.imagepicker.model.Image> ) {
//중복되어서 붙여지므로 지워주고 시작함.
dataImage.clear()
//이미지 객체를 가져와서 uri 형태로 변환&대입.
for (i in 0 until item.size) {
val items =
ContentUris.withAppendedId(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
item[i].id
)
val imagedata = DataImage(Image = items)
dataImage.add(imagedata)
}
LiveDataImage.value=dataImage
}
fun deleteDataImage(position: Int) {
// dataImage.removeAt(position)
// LiveDataImage.value = dataImage
}
}
임시 방편 해결
//이미지 uri 객체를 회원가입 페이지로 보내줌.
//이부분에서 데이터를 보내주면서 dialog를 띄우는 것도 좋을 듯.
// ViewModel 의 dataImage가 직렬화가 되어야 하는 문제점.
val intent = Intent()
val data = images as Serializable
var bundle =Bundle()
bundle.putSerializable("Image",data)
intent.putExtras(bundle)
setResult(Activity.RESULT_OK, intent)
//액티비티 팝업 닫기
finish()
.User_SignUp_PopUp.kt
데이터를 관리하는 ViewModel 의 data를 직렬화 시켜야 intent 를 통해서 회원가입 페이지로 Image 가 전송된다.
java.lang.RuntimeException: Parcelable encountered IOException writing serializable object
에러는 ViewModel 의 dataImage도 직렬화 시켜 줘야 한다고 함.
임시 방편 해결