package Ġcom . sel jab ali . template application . ui . add city Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . sel jab ali . template application . R Ċ Ċ class ĠCity Search Adapter ( private Ġval Ġclick Listener : Ġ( City Result ) Ġ-> ĠUnit ) Ġ: ĠRecyclerView . Adapter < City Search ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcity Results : ĠArrayList < City Result > Ġ= ĠArrayList () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCity Search ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ city _ search _ result , Ġparent , Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠCity Search ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcity Ġ= Ġcity Results [ position ] ĊĠĠĠĠĠĠĠ Ġholder . bind ( city ) ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ Ġclick Listener . invoke ( city ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġcity Results . count () ĊĊĠĠĠ Ġfun Ġset City Results ( results : ĠList < City Result >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcity Results . clear () ĊĠĠĠĠĠĠĠ Ġcity Results . addAll ( results ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} Ċ } Ċ