Адаптер, показывающий только последний элемент - Kotlin - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть объект с категорией и списком в этой категории.

Мой список должен быть таким:

Раздел1 item1 item2 item3 Setion2 item1 item2

Что сейчас происходит, так это то, что в моем списке отображается только Раздел 2 с его Элементом.

Я думаю, что-то не так с моим адаптером.

Вот адаптер:

class FaqAdapter(private val context: Context, private var faqList: List<Faq>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
    val view: View
    return when (FaqType.values()[viewType]) {
        FaqType.SECTION -> {
            view = LayoutInflater.from(parent.context).inflate(R.layout.item_section_faq, parent, false)
            SectionViewHolder(view)
        }
        FaqType.QUESTION -> {
            view = LayoutInflater.from(parent.context).inflate(R.layout.item_question_faq, parent, false)
            QuestionViewHolder(view)
        }
    }
}

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
    val faq = faqList[position]
    when (faq.faqType) {
        FaqType.SECTION -> (holder as SectionViewHolder).txtSectionFaq.text = faq.faqCategoryName
        FaqType.QUESTION -> {
            (holder as QuestionViewHolder).txtQuestionFaq.text = faq.question
            holder.txtAnswerFaq.text = faq.answer
        }
    }
}

override fun getItemCount(): Int {
    return faqList.size
}

fun update(faqList: List<Faq>) {
    this.faqList = faqList
    notifyDataSetChanged()
}

override fun getItemViewType(position: Int): Int {
    if (true) {
        val faq = faqList[position]

        if (true) {
            return faq.faqType.ordinal
        }
    }
    return 0
}

inner class SectionViewHolder internal constructor(itemView: View) : RecyclerView.ViewHolder(itemView) {
    @BindView(R.id.txtSectionFaq)
    lateinit var txtSectionFaq: AppCompatTextView

    init {
        ButterKnife.bind(this, itemView)
    }
}

inner class QuestionViewHolder internal constructor(itemView: View) : RecyclerView.ViewHolder(itemView) {
    @BindView(R.id.txtQuestionFaq)
    lateinit var txtQuestionFaq: AppCompatTextView
    @BindView(R.id.txtAnswerFaq)
    lateinit var txtAnswerFaq: AppCompatTextView

    init {
        ButterKnife.bind(this, itemView)
    }
}

}

...