У меня есть такой HeaderItem
class HeaderItem(private val groupName: String,private val groupEditListener: GroupEditListener) : Item() {
override fun bind(viewHolder: GroupieViewHolder, position: Int) {
viewHolder.apply {
itemView.tvGroupName.text = "Group : $groupName"
}
viewHolder.itemView.tvEdit.setOnClickListener {
groupEditListener.onEditClicked(this@HeaderItem,groupName)
}
}
override fun getLayout(): Int {
return R.layout.group_single_item
}
}
И у меня есть такой ChildItem
class ChildItem(private val childNamee:String): Item() {
override fun bind(viewHolder: GroupieViewHolder, position: Int) {
viewHolder.apply {
itemView.tvName.text = childNamee
}
}
override fun getLayout(): Int {
return R.layout.entries_single_item
}
}
Затем я настраиваю GroupieAdapter следующим образом
val groupAdapter = GroupAdapter<GroupieViewHolder>().apply {
groups.forEach { group ->
val section = Section()
section.setHeader(HeaderItem(group.name.toString(),groupEditListener))
section.addAll(group.entries?.map { it -> ChildItem(it.name.toString()) }!!)
this.add(section)
}
}
recyclerViewGroups.apply {
layoutManager = linearLayoutManager
adapter = groupAdapter
}
Теперь я хочу обновить HeaderItem и получить обновленные данные, подобные этим
disposable = RxBus.listen(GroupNameBridge::class.java).subscribe {
val updateHeader = HeaderItem(it.name,groupEditListener)
//I am not sure how to update this particular item
}
Но я не уверен, как обновить этот конкретный элемент в GroupAdapter. Любая помощь будет оценена. Спасибо.