package Ġother . mv vm . adapter . app _ package Ċ Ċ fun Ġmv vm Adapter Kt ( ĊĠĠĠĠĠĠĠ Ġapplication Package : ĠString ?, ĊĠĠĠĠĠĠĠ Ġadapter Class : ĠString , ĊĠĠĠĠĠĠĠ Ġlayout Name : ĠString , ĊĠĠĠĠĠĠĠ ĠpackageName : ĠString Ċ ) Ġ= Ġ""" Ċ import Ġandroid . content . Context Ċ import Ġcom . sh ide . base lib . adapter . Simple Rec Adapter Ċ import Ġ${ application Package }. databinding . Item ${ adapter Class } Binding Ċ import Ġ${ application Package }. R Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ // ĠTODO Ġ---- æĽ¿æį¢ å®ŀä½ĵ ç±» Ċ class Ġ${ adapter Class } Adapter ( context : ĠContext ?) Ġ: ĊĠĠĠ ĠSimple Rec Adapter < ----- , Ġ${ adapter Class } Adapter . My ViewHolder , ĠItem ${ adapter Class } Binding >( context ) Ġ{ ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠMy ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// è®° å¾Ĺ æĽ¿æį¢ ĊĠĠĠĠĠĠĠ ĠTODO (" holder . binding . order Info Ġ= Ġdata . get ( position )") ĊĠĠĠĠĠĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnew ViewHolder ( view Type : ĠInt , ĠitemView : ĠItem ${ adapter Class } Binding ?): ĠMy ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMy ViewHolder ( item View !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout .${ layout Name } ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit ViewData Binding ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater ?, ĊĠĠĠĠĠĠĠ Ġlayout : ĠInt , ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ Ġattach To Parent : ĠBoolean ? ĊĠĠĠ Ġ): ĠItem ${ adapter Class } Binding Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠData Binding Util . inflate ( in flater !! , Ġlayout Id , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠMy ViewHolder ( item View : ĠItem ${ adapter Class } Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( item View . getRoot ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠItem ${ adapter Class } Binding ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . binding Ġ= ĠitemView ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ """