작성
·
196
0
현재 '핸드폰 이미지 불러오기' 강의를 듣고있는데 저번에 '안드로이드 커뮤니티 앱 만들기'에서는 핸드폰의 이미지를 불러올때
fun getProfileImg() {
joinBinding.imageArea.setOnClickListener {
val gallery = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI)
startActivityForResult(gallery, 100)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == AppCompatActivity.RESULT_OK && requestCode == 100) {
joinBinding.imageArea.setImageURI(data?.data)
}
}
이런식으로 하셨잖아여. 이번에도 이렇게 하니까 정상 작동하더라고요! 이번에는
fun getProfileImg() {
val getAction = registerForActivityResult(
ActivityResultContracts.GetContent(),
ActivityResultCallback { uri ->
joinBinding.imageArea.setImageURI(uri)
}
)
joinBinding.imageArea.setOnClickListener {
getAction.launch("image/*")
}
}
이런식으로 하고계시잖아요.
두방법간의 차이가 뭔가요? 아니면 더 좋은방법을 알아내신건가요?
답변 1
1
좋은 질문이시네요.
사실 더 좋은 방법이라기 보다는 여러가지 방법 중 하나를 선택한 것입니다.
callback을 받는 다양한 방법이 있는데
예를 들면
서울에서 부산까지 간다고 했을 때
서울 -> 대전 -> 부산
서울 -> 대구 -> 부산
이렇게 여러 가지 방법으로 갈 수 있는 것과 같습니다. 성향과 스타일에 맞게 사용하시면 됩니다~
가독성도 읽기 편하신 것을 사용하시면 됩니다.