package Ġcom . ser h ats ur gu vec . android clean kotlin . layers . presentation . example Ċ Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . ser h ats ur gu vec . android clean kotlin . R Ċ import Ġcom . ser h ats ur gu vec . android clean kotlin . core . extension . inflate Ċ import Ġcom . ser h ats ur gu vec . android clean kotlin . layers . domain . model . Example Ċ import Ġkotlinx . android . synt hetic . main . row _ example . view .* Ċ import Ġjavax . inject . Inject Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ class ĠExample Adapter Ċ @ Inject Ġconstructor () Ġ: ĠRecyclerView . Adapter < Example Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġinternal Ġvar Ġcollection : ĠList < Example > Ġby ĠDeleg ates . observable ( emptyList ()) Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġvar Ġclick Listener : Ġ( Example , ĠView ) Ġ-> ĠUnit Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewHolder ( parent . inflate ( R . layout . row _ example )) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( view Holder : ĠViewHolder , Ġposition : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . bind ( collection [ position ], Ġclick Listener ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġcollection . size ĊĊĠĠĠ Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( movie View : ĠExample , Ġclick Listener : Ġ( Example , ĠView ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . example Text . text Ġ= Ġmovie View . string ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ Ġclick Listener ( movie View , ĠitemView . example Text ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }