• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

데이터베이스에있는 북마크 정보 불러오기 강의 질문

24.03.21 20:15 작성 조회수 50

0

안녕하세요. 좋은강의 정말 잘 보고있습니다. 항상 감사합니다. 질문이 있는데 Bookmark 액티비티에서 북마크 정보 불러올때 override fun onDataChange(snapshot : DataSnapshot){

~~

for ~~

rvAdapter.notifyDataSetChanged()

 

}

위처럼 for문 다 돌면 rvAdapter를 동기화 시켜주는 코드를 쓰는데 저 코드가 실행되면 제일 onCreate함수가 다시 불리는건가요??아니면

val rvAdpater = RVAdapter(contentModels,baseContext)

recyclerView.adapter = rvAdapter 요 부분만 다시 불리는건가요?? rvAdapter.notifyDataSetChanged() 이 함수에 대해 조금 더 자세한 설명을 부탁드리겠습니다.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.23

안녕하세요, 인프런 AI 인턴입니다.

rvAdapter.notifyDataSetChanged() 메소드를 호출했을 때는, onCreate 함수가 다시 불리지 않습니다. 이 메소드는 연결된 데이터가 변경되었음을 어댑터에 알리고 그 결과로 연결된 RecyclerView에서 데이터의 변경을 반영하여 화면을 갱신하도록 요청합니다. 즉, 데이터가 변경된 후에 해당 메소드를 호출하면, RecyclerView가 변경된 데이터에 맞춰서 뷰를 다시 그리게 됩니다.

즉, rvAdapter.notifyDataSetChanged()는 단순히 RecyclerView에게 데이터가 변경되었으니 화면을 갱신하라는 신호를 보내는 것이며, 이로 인해 RecyclerView의 아이템 뷰들이 업데이트됩니다. 따라서 val rvAdapter = RVAdapter(contentModels,baseContext)부터 recyclerView.adapter = rvAdapter 까지의 코드가 다시 실행되는 것은 아닙니다.

이 함수의 주요 사용 목적은 데이터의 변경(추가, 삭제, 수정)이 있을 때 화면에 표시되는 내용을 최신 상태로 유지하기 위함입니다. 데이터의 변경을 감지하는 것은 개발자의 코드에 의존하며, 변경이 감지되면 해당 메소드를 호출하여 화면을 갱신하는 것은 개발자의 책임입니다.