• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

RecyclerView Adapter에서 ViewModel 접근에 관하여 질문 드립니다.

21.09.08 18:50 작성 조회수 998

0

안녕하세요.

제목 그대로 RecyclerView.Adapter or RecyclerView.ViewHolder class에서 ViewModel에 접근하고 싶은데 방법을 못찾아 질문 드립니다.

지금 저는 Adapter나 ViewHolder의 인스턴스를 생성할때 ViewModel을 삽입하여 사용하고 있는데 혹시 더 좋은 방법이 있는지 질문 드립니다.

답변 1

답변을 작성해보세요.

1

어댑터나 홀더가 ViewModel의 인스턴스를 가지고 있는 것은 추천하지 않습니다.

안드로이드의 ViewModel은 특히 생명주기와도 밀접해서 이와 관계없는 어댑터나 홀더가 ViewModel의 인스턴스를 가지고 있을 때 잠재적으로 메모리 해제가 안 되거나 하는 문제가 있을 수도 있을 것 같습니다.

ViewModel에서 관리하는 데이터만 어댑터에 전달하는 것이 맞고요.

어댑터에서 특정 상황에 ViewModel을 조작하고 싶다면 콜백을 구현해서 조작하시면 됩니다.

BH Kim님의 프로필

BH Kim

질문자

2021.09.09

감사합니다 callBack은 제가 좀더 공부를 해야 할거 같아서.. 인터페이스로 따로 처리를 해보려고 합니다. Adapter에서 viewmodel에 접근하면 안되는 이유까지 친절하게 설명해주시고 너무 감사드립니다