인프런 커뮤니티 질문&답변

mori mori님의 프로필 이미지
mori mori

작성한 질문수

[중급편] 친절한 JETPACK 개론 <상> (Android Kotlin)

ROOM 간단한 예제 - 5 (ViewModelScope / LiveData / RecyclerView)

마지막 7분대 리사이클러뷰 관련 질문입니다.

작성

·

277

0

7분대 쯤 나오는 리사이클러 뷰의 코드가

 

viewModel.textList.observe(this){

val customAdapter = CustomAdapter(it)

...

 

이런 식으로 진행되던데,

it이 List<TextEntity> 라서 마지막 출력에도 텍스트 엔티티에 들어간 것만 출력이 되더라구요.

혹시 워드 엔티티에 넣은 값까지 동시에 출력하게 만들려면 어떻게 해야할까요?

답변 1

0

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

안녕하세요.

작성하신 코드와 함께 좀 더 자세히 설명해주실 수 있으실까요?

mori mori님의 프로필 이미지
mori mori
질문자

 

아직 제대로 이해된 부분이 아니라 설명을 드리기가 참 부족하네요.. 저 부분에 해당하는 질문이었습니다.

저쪽 it: List<TextEntitiy>! 라고 적힌 부분이 어뎁터에 텍스트 엔티티가 연결된 상태로 보이는데

WordEntity에 대한 출력 결과를 따로 표시하려면 어떤 식으로 어뎁터를 연결해야하는지 궁금했습니다.

어.. 근본적으로 틀린 이해면 죄송합니다.

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

안녕하세요!

이 부분은 viewModel에 textList를 보시면 아래와 같이 되어 있습니다.

 

private var _textList = MutableLiveData<List<TextEntity>>()

val textList : LiveData<List<TextEntity>> get() = _textLis

 

여기에서 testList의 값을 

 

getData에서 받아오고 있어요

 

 _textList.postValue(db.textDao().getAllData()) 

 

그렇다면 wordList에 있는 값이 WordEntity에 있는 값인데

 

위의 작성하신 코드에서

 

viewModel.textList 가 아니라

viewModel.wordList 로 변경해서 해보시겠어요?

 

만약 어려우시면 한번 더 문의 남겨주세요~

mori mori님의 프로필 이미지
mori mori
질문자

아, 설명해주신 덕에 그 부분은 이해됐습니다.

그럼 혹시 textList와 wordList를 동시에 출력하게 하려면 저 부분을 어떤 식으로 바꿔야 할까요?

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

이 부분은 동시에 출력하는 용도로 만든 것이 아니기 때문에..

전체적으로 구조를 바꿔야 할 것 같습니다.

예제용으로 text / word 테이블을 2개 사용하도록 해놓은 것인데

실제로는 동일한 데이터를 저장하면 text 하나의 Entity / DAO를 통해서 처리해준다고 생각하시면 될 것 같습니다~

mori mori님의 프로필 이미지
mori mori

작성한 질문수

질문하기