package Ġcom . example . demo assignment . ui . home Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . demo assignment . R Ċ import Ġcom . example . demo assignment . data . module . Result Ċ Ċ class ĠList Data Adapter ( private Ġvar ĠdataSet : ĠList < Result >) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < List Data Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġvar Ġon Item Click : Ġ(( Result ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Title : ĠTextView Ġ= Ġview . findViewById ( R . id . item Title ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Sub Title : ĠTextView Ġ= Ġview . findViewById ( R . id . item Sub Title ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Place : ĠTextView Ġ= Ġview . findViewById ( R . id . item Place ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Date : ĠTextView Ġ= Ġview . findViewById ( R . id . item Date ) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Click ?. invoke ( data Set [ adapter Position ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( view Group : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa Ġnew Ġview , Ġwhich Ġdefines Ġthe ĠUI Ġof Ġthe Ġlist Ġitem ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( view Group . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . list _ item _ view , Ġview Group , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( view Holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠdataSet [ position ] ĊĠĠĠĠĠĠĠ ĠviewHolder . item Title . text Ġ= Ġresult . title ĊĠĠĠĠĠĠĠ ĠviewHolder . item Sub Title . text Ġ= Ġresult . by line ĊĠĠĠĠĠĠĠ ĠviewHolder . item Place . text Ġ= Ġresult . source ĊĠĠĠĠĠĠĠ ĠviewHolder . item Date . text Ġ= Ġresult . published Date ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠdataSet . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetData ( data Set : ĠList < Result >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . data Set Ġ= ĠdataSet ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} Ċ }