package Ġcom . aid an v ii . toolbox . adapter views . databinding . recyclerview Ċ Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . aid an v ii . toolbox . adapter views . databinding . Bind able Adapter Ċ import Ġcom . aid an v ii . toolbox . adapter views . databinding . Bind able Adapter Item Ċ Ċ class ĠBinding RecyclerView Item ViewHolder < out ĠBinding Ġ: ĠView Data Binding , ĠItem Ġ: ĠBind able Adapter Item > Ġinternal Ġconstructor ( ĊĠĠĠ Ġoverride Ġval Ġbinding ResourceId : ĠInt , ĊĠĠĠ Ġoverride Ġval Ġview Data Binding : ĠBinding , ĊĠĠĠ Ġprivate Ġval Ġitem Bound Observer s : ĠList < Item Bound Observer < Item >> Ċ ) Ġ: ĠRecyclerView . ViewHolder ( view Data Binding . root ), ĠBind able Adapter . ViewHolder < Binding , ĠItem > Ġ{ ĊĊĠĠĠ Ġinternal Ġvar Ġcurrent Adapter : ĠBinding RecyclerView Adapter < Item >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġvar Ġbound Adapter Item : ĠItem ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Bound Observer s . forEach Ġ{ Ġobserver Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield ?. let Ġ{ Ġobserver . on Item Un Bound ( it , Ġcurrent Adapter !! ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ Ġobserver . on Item Bound ( it , Ġcurrent Adapter !! ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} Ċ }