package Ġcom . cn 2 9 . aac . ui . common Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . recyclerview . widget . RecyclerView . ViewHolder Ċ import Ġcom . cn 2 9 . aac . ui . common . Base RecyclerView Adapter . My ViewHolder Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠChar les ĠNg Ġon Ġ 6 / 9 / 2 0 1 7 . Ċ Ġ*/ Ċ abstract Ġclass ĠBase RecyclerView Adapter < T , ĠB Ġ: ĠView Data Binding >( private Ġval Ġitem ClickListener : ĠOn ItemClickListener < T >) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . Adapter < My ViewHolder < T , ĠB >>() Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Type : ĠInt ): ĠMy ViewHolder < T , ĠB > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Inflater : ĠLayoutInflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠB Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Inflater , Ġview Type , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠMy ViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠMy ViewHolder < T , ĠB >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetItem For Position ( position ) ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ClickListener . on Item Click ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbind ( holder . binding , Ġitem ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Layout Id For Position ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun ĠgetItem For Position ( position : ĠInt ): ĠT ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġget Layout Id For Position ( position : ĠInt ): ĠInt ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġbind ( binding : ĠB , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem : ĠT ) ĊĊĠĠĠ Ġinterface ĠOn ItemClickListener < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Click ( item : ĠT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠMy ViewHolder < T , ĠBinding Ġ: ĠView Data Binding >( val Ġbinding : ĠBinding ) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( binding : ĠBinding , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }