[TIL] 230801 회고

서정한·2023년 8월 1일
0

내일배움캠프 7기

목록 보기
15/66
post-thumbnail

Intro

  • 안드로이드 공부 2일차이다. 오늘은 이전시간에 배웠던 Activity, Layout, 각종 Component, Intent를 활용하여 간단한 앱을 만드는 실습을 하였다.
  • 실습과제중 registerForActivityResult를 사용하여 다른 Activity와 통신하는 실습도 진행하였는데 해당 내용이 이해가 되지않아 추가적으로 학습해보았다.

과제 App


  • 과제로 구현한 앱은 간단하게 로그인 페이지와 회원가입 페이지 그리고 홈화면에서 간단히 자기소개하는 페이지로 총3개의 페이지 구조였다. 구현하면서 딱히 어려운점은 없었고, 무난무난하게 구현하였다.
  • 첫번째 페이지에서 회원가입으로 넘어가면 3번째 페이지가 나오고 여기에 입력한 id와 pw는 첫번째 페이지로 정보가 넘어간다. 첫번째 페이지에서 id, pw를 입력하면 2번째화면인 홈화면으로 넘어가고 홈화면에 내가 작성했던 id가 넘어간다. 홈화면의 사진은 들어갈때마다 랜덤하게 바뀌며 사진은 총 5장이다. 1번, 3번에서 값을 입력하지않은 항목이 하나라도 존재할경우 Toast메세지로 입력하라는 문구가 뜨며 페이지는 이동하지 않는다.
  • 새롭게 배운점은 xml에서 id는 해당 xml에서만 적용되는게 아닌 프로젝트 단위로 적용된다는것을 알게되었다. 이걸 모르고 변수명을 짰다가 중간에 한번 수정하게되었다.
  • 이 실습에서 사용했던 registerForActivityResult가 어렵게 다가왔다. 사용하는법이 좀 복잡해졌다고 느껴졌다.

registerForActivityResult

  • 그래서 한번더 간단한 앱에서 만들어보았다. 만들면서 머리속에 대략적인 구현과정을 그려보았는데 아래와 같다.

  • 구현과정

    1. 우선 ActivityResultLauncher 타입의 변수를 하나 선언한다.(후에 이 변수에 선언한 콜백함수에 내가 값을 받고자하는 Activity의 값이 넘어오게된다)
    2. 콜백함수를 등록한다. 콜백함수는 registerForActivityResult이다.
      • registerForActivityResult에는 총 2개의 param이 필요하다.
        1. ActivityResultContracts.StartActivityForResult()
        2. 콜백함수(대부분 내가 찾은 자료에서는 람다식으로 사용하더라)
      • 콜백함수안에서 Result Code를 체크한다. RESULT_OK일때 내가 하고싶은것을 하면된다.
    3. 해당 콜백함수를 launch한다.(내가 실습할때에는 onClick Event 안에 구현했다.)
    4. 이제 값을 넘길 Activity에서 Intent를 정의하고 putExtra를 사용하여 key와 넘길 값을 지정한다. 그 후 setResult에 Result code와 intent를 넘겨주면 끝!
  • 말로 설명하면 위와같지만 사실 이게 말로 이해할 수 있는건 아닌거같고.. 직접 실습해보면서 하는게 제일 빠른데 나는 아래 자료를 참고하여 실습을 진행하였다.

[Android] registerForActivityResult()란?

registerForActivityResult 구현방법정리 # 예전 onActivityResult

Outro

  • 안드로이드는 참 배워야 할 개념이 많다는것을 느낀다. 그리고 잘 모르는것을 사용하는 찜찜함을 가지고 가야되는것도 마음에 걸린다. 차근차근 하나씩 쌓아가야겠다. 우선은 Activity에 대해 먼저 공부해보고자 한다.
profile
잘부탁드립니다!

0개의 댓글