package Ġnet . shadow xc raft . smart lights . ui . edit _ color _ sequence Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġnet . shadow xc raft . smart lights . Button ClickListener Ċ import Ġnet . shadow xc raft . smart lights . Color Ċ import Ġnet . shadow xc raft . smart lights . R ĊĊ Ċ // ĠCreate Ġthe Ġbasic Ġadapter Ġextending Ġfrom ĠRecyclerView . Adapter Ċ // ĠNote Ġthat Ġwe Ġspecify Ġthe Ġcustom ĠViewHolder Ġwhich Ġgives Ġus Ġaccess Ġto Ġour Ġviews Ċ class ĠColor Sequence Editor ListAdapter ( private Ġval Ġcolors List : ĠArrayList < Color >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġedit Button ClickListener : ĠButton ClickListener Ċ ) ĊĠĠĠ Ġ: ĠRecyclerView . Adapter < Color Sequence Editor ListAdapter . ViewHolder ?> () Ċ { ĊĊĠĠĠ Ġ// ĠProvide Ġa Ġdirect Ġreference Ġto Ġeach Ġof Ġthe Ġviews Ġwithin Ġa Ġdata Ġitem ĊĠĠĠ Ġ// ĠUsed Ġto Ġcache Ġthe Ġviews Ġwithin Ġthe Ġitem Ġlayout Ġfor Ġfast Ġaccess ĊĠĠĠ Ġinner Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ), ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠYour Ġholder Ġshould Ġcontain Ġa Ġmember Ġvariable ĊĠĠĠĠĠĠĠ Ġ// Ġfor Ġany Ġview Ġthat Ġwill Ġbe Ġset Ġas Ġyou Ġrender Ġa Ġrow ĊĠĠĠĠĠĠĠ Ġvar Ġcolor View : ĠView Ġ= ĠitemView . findViewById ( R . id . color _ preview ) ĊĠĠĠĠĠĠĠ Ġvar Ġcolor ID : ĠTextView Ġ= ĠitemView . findViewById ( R . id . item _ color _ sequence _ color _ id ) ĊĠĠĠĠĠĠĠ Ġvar Ġedit Button : ĠButton Ġ= ĠitemView . findViewById ( R . id . color _ edit _ button ) ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġcomponent Ġ= Ġcomponent List [ adapter Position ] ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext : ĠContext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġcustom Ġlayout ĊĠĠĠĠĠĠĠ Ġval Ġdevice View : ĠView Ġ= Ġinflater . inflate ( R . layout . item _ color _ sequence _ color , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠReturn Ġa Ġnew Ġholder Ġinstance ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( device View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcolors List . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġdata Ġmodel Ġbased Ġon Ġposition ĊĠĠĠĠĠĠĠ Ġval Ġcolor : ĠColor Ġ= Ġcolors List [ position ] ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġitem Ġviews Ġbased Ġon Ġyour Ġviews Ġand Ġdata Ġmodel ĊĠĠĠĠĠĠĠ Ġholder . color View . set BackgroundColor ( color . to Argb ()) ĊĠĠĠĠĠĠĠ Ġholder . color ID . text Ġ= Ġcolor . toString () ĊĠĠĠĠĠĠĠ Ġholder . edit Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Button ClickListener . on Button Clicked ( position , ĠR . id . color _ edit _ button ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }