У меня есть объект с категорией и списком в этой категории.
Мой список должен быть таким:
Раздел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)
}
}
}