package Ġcom . z . palette . recycle view Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Sparse Array Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ class ĠBase ViewHolder ( m View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( m View ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm View Array : ĠSparse Array < View >? Ġ= Ġnull ĊĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm View Array Ġ= ĠSparse Array () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠView ?> Ġget View ( id : ĠInt ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġv : ĠView ? Ġ= Ġm View Array ?. get ( id ) ĊĠĠĠĠĠĠĠ Ġif Ġ( v Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv Ġ= ĠitemView . findViewById ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm View Array ?. put ( id , Ġv ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġv Ġas ĠT ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset TextView ( id : ĠInt , Ġs : ĠString ?): ĠTextView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġget View < TextView >( id ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( s )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġs ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠtextView ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset ImageView ( id : ĠInt , Ġuri : ĠUri ?): ĠImageView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( uri == null ) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġval ĠimageView Ġ= Ġget View < ImageView >( id ) ĊĠĠĠĠĠĠĠ ĠimageView . setImage URI ( uri ) ĊĠĠĠĠĠĠĠ Ġreturn ĠimageView ĊĠĠĠ Ġ} Ċ Ċ }