Android

어댑터 초기화후 데이터 넣기

그란. 2021. 9. 10. 08:54

 

통신을 하고 난후에 탭의 타이틀을 지정하거나

 

통신을 하고 난 후에 선택적으로 어댑터를 붙이는 경우가 있다.

이때 라이브데이터를 observe하고 난 후 ( 통신을 하고 난후)에 

리사이클러뷰에 어댑터를 설정하지 않고 

 

초기에 어댑터를 설정한 후에 나중에 데이터를 밀어주는 방식으로 변경하려고 한다.


리사이클러뷰 어댑터에서 해당 변수를 멤버변수로 지정

 var type: QuestionType? = null
        set(value) {
            field = value
            notifyDataSetChanged()
        }

    override fun getItemCount(): Int = if (type == null) 0 else NUM_PAGES

 

 

 showEntry.observe { (entry, size) ->
                (viewDataBinding.vpResult.adapter as ResultStateAdapter).type = entry.type

                viewDataBinding.tabResult.setupWithViewPager2(viewDataBinding.vpResult) { tab, position ->
                    val (correctSize, wrongSize) = size
                    when (position) {
                        0 -> tab.text = "정답(${correctSize})"
                        else -> tab.text = "오답(${wrongSize})"
                    }
                }
            }