package Ġcom . ang cy o . u iv iew . less . recycler . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroid . widget . Filter Ċ import Ġcom . ang cy o . u iv iew . less . R Ċ import Ġcom . ang cy o . u iv iew . less . recycler . R Base ViewHolder Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠEmail : ang cy o @ 1 2 6 . com Ċ Ġ* Ġ@ author Ġang cy o Ċ Ġ* Ġ@ date Ġ 2 0 1 9 / 0 1 / 2 3 Ċ Ġ*/ Ċ open Ġclass ĠR Array Adapter < T > Ġ: ĠArray Adapter < T > Ġ{ ĊĠĠĠ Ġvar Ġthis Context : ĠContext ĊĠĠĠ Ġprivate Ġvar Ġthis DataList : ĠList < T > ĊĠĠĠ Ġvar Ġlayout Inflater : ĠLayoutInflater ĊĠĠĠ Ġvar Ġthis Resource : ĠInt ĊĠĠĠ Ġvar Ġthis DropDown Resource : ĠInt ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġthis ( context , Ġmutable ListOf ()) ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġdatas : ĠList < T >) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠ ĠR . layout . base _ item _ single _ drop _ down _ layout , ĊĠĠĠĠĠĠĠ Ġdatas ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġresource : ĠInt ) Ġ: Ġthis ( context , Ġresource , Ġmutable ListOf ()) ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġresource : ĠInt , Ġdatas : ĠList < T >) Ġ: Ġsuper ( context , Ġresource , Ġdatas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . this Context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġthis . this DataList Ġ= Ġdatas ĊĠĠĠĠĠĠĠ Ġthis . this Resource Ġ= Ġresource ĊĠĠĠĠĠĠĠ Ġthis . this DropDown Resource Ġ= Ġresource ĊĠĠĠĠĠĠĠ Ġthis . layout Inflater Ġ= ĠLayoutInflater . from ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset DropDown View Resource ( resource : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . set DropDown View Resource ( resource ) ĊĠĠĠĠĠĠĠ Ġthis . this DropDown Resource Ġ= Ġresource ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġcreate View ( convert View : ĠView ?, Ġparent : ĠViewGroup , Ġlayout Id : ĠInt ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġvar ĠitemView Ġ= Ġif Ġ( convert View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinf late Ġ= Ġlayout Inflater . inflate ( this Resource , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinf late . tag Ġ= ĠR Base ViewHolder ( inflate ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinf late ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠconvertView ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠitemView ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . getCount () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ViewType Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . getView Type Count () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . getItem ViewType ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ// super . getView ( position , ĠconvertView , Ġparent ) ĊĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= Ġcreate View ( convert View , Ġparent , Ġthis Resource ) ĊĊĠĠĠĠĠĠĠ Ġon Bind Item View ( item View . tag Ġas ĠR Base ViewHolder , Ġposition , ĠgetItem ( position )) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠitemView ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget DropDown View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ// return Ġsuper . get DropDown View ( position , ĠconvertView , Ġparent ) ĊĊĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= Ġcreate View ( convert View , Ġparent , Ġthis DropDown Resource ) ĊĊĠĠĠĠĠĠĠ Ġon Bind DropDown Item View ( item View . tag Ġas ĠR Base ViewHolder , Ġposition , ĠgetItem ( position )) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠitemView ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĩį åĨĻ æŃ¤ æĸ¹æ³ķ , Ġ ç»ĳå®ļ å¸ĥå±Ģ ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġon Bind Item View ( item ViewHolder : ĠR Base ViewHolder , Ġposition : ĠInt , Ġitem Bean : ĠT ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Bind DropDown Item View ( item ViewHolder , Ġposition , Ġitem Bean ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġä¸ĭ æĭī å¼¹ çªĹ item , å¸ĥå±Ģ ç»ĳå®ļ ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġon Bind DropDown Item View ( ĊĠĠĠĠĠĠĠ Ġitem ViewHolder : ĠR Base ViewHolder , ĊĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠ Ġitem Bean : ĠT ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item Bean Ġis ĠCharSequence ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ViewHolder . tv ( R . id . text _ view ). text Ġ= Ġitem Bean ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĩį ç½® æķ°æį® æºĲ ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġreset Data ( datas : ĠList < T >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis DataList Ġ= Ġdatas ĊĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠ Ġadd All ( datas ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Filter (): ĠFilter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . get Filter () ĊĠĠĠ Ġ} Ċ }