내일배움캠프 32일차

김재현·2024년 4월 11일
post-thumbnail

RecyclerView

  • RecyclerView는 ListView와 비슷하지만 ListView는 스크롤 할 때마다 위에 있던 아이템이 삭제되고 맨 아래의 아이템은 생성 되길 반복하면서 성능에 좋지않지만 RecyclerView는 위에 있던 아이템이 재활용이 되어 아래로 이동하여 재사용한다. View를 계속하여 만드는 ListView의 단점을 보완하기 위해 나온 것이 RecyclerView이다.

Adapter

  • Adapter는 데이터 테이블을 목록 형태로 보여주기 위해 사용되는 것으로 다양한 형식의 리스트 형식을 보여주기 위한 데이터와 RecyclerView 사이의 통신을 위한 연결체이다.

ViewHolder

  • ViewHolder는 화면에 표시될 데이터나 아이템들을 저장하는 역할을 하며 스크롤 해서 위로 올라간 View를 재활용하기 위해 필요한게 ViewHolder이다.

실습

먼저 반복해서 사용할 아이템뷰를 만들어주고


MainActivity 레이아웃에 recyclerView를 넣어준다.


item안에 들어갈 데이터를 담은 dataclass도 만들어 주고


adapter를 통해 데이터와 recyclerView를 연결시켜준다. 이때 click시 이벤트를 추가해주기 위해 interface에 함수 onClick을 추가해서 itmeView가 setOnClickListener시에 position에 맞게 실행될(?) 이벤트를 추가해준다.


그리고 메인에서 아이템 목록을 추가해주고 MainActivity 레이아웃에 넣어둔 recyclerView와 adapter를 연결시켜준다. 마지막 단락은 함수 onClick을 통해 각 position에 맞는 itemView를 클릭하면 position에 맞는 이름이 출력되도록 한 메세지이다.


짜잔

과제할때 사용해보긴 했지만 제대로 배우니까 뭔가 좀 어렵긴하다 계속 이해하려고 해봐야겠다.

Fragment

  • 프래그먼트는 하나의 액티비티에서 화면을 여러개로 분할시킬 수 있으며 프래그먼트 하나를 여러 액티비티에서 재사용 가능하다. 하지만 액티비티와는 분리되어 독립적으로 동작할 수는 없다.

프래그먼트 생명주기

1. onAttach()

  • 프래그먼트가 액티비티와 연결될 때 호출되며 이 시점에서 프래그먼트와 액티비티가 완전히 연결된 것은 아니다.

2. onCreate()

  • 프래그먼트가 생성될 때 호출된다. 초기화 작업, 리소스 바인딩을 수행할 수 있다.

3. onCreateView()

  • 프레그먼트의 레이아웃을 인플레이트하는 곳으로 뷰를 생성하고 레이아웃을 설정한다.

4. onActivityCreated()

  • 액티비티의 onCreate() 메서드 완료된 후 호출되며 액티비티와 프래그먼트의 뷰가 모두 생성된 상태이므로 뷰와 관련된 초기화를 수행한다.

5. onStart()

  • 프래그먼트가 사용자에게 보여질 준비가 되었을 때 호출되며 리소스를 할당하거나 애니메이션을 시작할 수 있다.

6. onResume()

  • 프래그먼트가 사용자와 상호작용할 수 있는 상태가 되었을 때 호출된다. 프래그먼트가 포그라운드에 있을 때 실행되는 작업을 여기서 처리한다.

7. onPause()

  • 프래그먼트가 일시정지될 때 호출되며 상태 저장, 스레드 중지 등의 작업을 수행한다.

8. onStop()

  • 프래그먼트가 사용자에게 보이지 않을 때 호출된다. 리소스 해제, 스레드 정지 등을 수행한다.

9. onDestroyView()

  • 프래그먼트의 뷰와 관련된 리소스를 정리할 때 호출된다.

10. onDestroy()

  • 프래그먼트가 파괴될 때 호출된다. 프래그먼트의 상태를 정리하고 모든 리소스를 해제한다.

11. onDetach()

  • 프래그먼트와 액티비티의 모든 연결을 해제하며 프래그먼트가 액티비티로부터 분리될때 호출된다.

실습



먼저 프래그먼트 레이아웃 구성해주고

activity_main 레이아웃에서 프래그먼트 출력시킬 FrameLayout과 변경시킬 버튼 두가지 구성해준다.

MainActivity에서 setFragment 정의 해주고 버튼 클릭시 띄워줄 Fragment 설정해주면


잘 나온다. (메세지는 한번 추가해보았다.)
.
.
.
.
.
오늘은 recyclerview와 fragment를 배워보았다. 구현만 해보다가 수업들으면서 따라가니까 좀 어려운 것 같은 느낌이다!

하루의 마무리

  • 내일은 fragment 데이터 전달과 다이얼로그, 알림 구현해보고 스탠다드반 과제해야겠다!

    피곤피곤하구만

0개의 댓글