package Ġcom . y og cn . core . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 4 . view . Pager Adapter Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . y og cn . core . base . ViewHolder Ċ import Ġjava . util . ArrayList Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġl yn don Ġon Ġ 2 0 1 7 / 1 2 / 2 0 . Ċ Ġ*/ Ċ abstract Ġclass ĠMar quee Adapter < T > Ġ: ĠP ager Adapter Ġ{ ĊĠĠĠ Ġprotected Ġvar Ġcontext : ĠContext ĊĠĠĠ Ġprivate Ġvar Ġdata : ĠMutable Collection < T > ĊĠĠĠ Ġprivate Ġvar Ġlayout Res : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġdata : ĠMutable Collection < T >, Ġlayout Res : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġthis . data Ġ= Ġdata ĊĠĠĠĠĠĠĠ Ġthis . layout Res Ġ= Ġlayout Res ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count () Ġ= ĠInt . MAX _ VALUE ĊĊĠĠĠ Ġopen Ġfun ĠgetData Count () Ġ= Ġdata . size ĊĊĠĠĠ Ġoverride Ġfun Ġis View From Object ( view : ĠView ?, Ġ` object `: ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġview Ġ== Ġ` object ` ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun ĠgetItem ( position : ĠInt ): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( data . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArrayList ( data )[ position Ġ% ĠgetData Count ()] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Position (` object `: ĠAny ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( data . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPOSITION _ NONE ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPOSITION _ UN CHANGED ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinstantiate Item ( container : ĠViewGroup ?, Ġposition : ĠInt ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġholder Ġ= ĠViewHolder ( context , Ġcontainer , Ġlayout Res , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġif Ġ( data . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġposition Ġ= Ġposition Ġ% ĠgetData Count () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind Data ( holder , ĠgetItem ( position ), Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġholder . data Binding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġbind Data ( holder : ĠViewHolder ?, Ġt : ĠT ?, Ġposition : ĠInt ) ĊĊĠĠĠ Ġoverride Ġfun Ġdestroy Item ( container : ĠViewGroup ?, Ġposition : ĠInt , Ġ` object `: ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġview Ġ= Ġ` object ` Ġas ĠView ĊĠĠĠĠĠĠĠ Ġcontainer ?. remove View ( view ) ĊĠĠĠ Ġ} Ċ }