Skip to content

Intent의 PutExtra 로 ArrayList를 전달해 보기 #8

@wnsdudSoftkim

Description

@wnsdudSoftkim

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()
        }

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions