package Ġcom . example . my application . kotlin demo . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Base Adapter Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġcom . example . my application . kotlin demo . R Ċ import Ġcom . example . my application . kotlin demo . logic . mod le . F ruit ĊĊ Ċ class ĠListView Adapter ( val Ġlist : List < F ruit >): ĠBase Adapter () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfruit : ĠF ruit ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist [ position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġposition . to Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ= Ġlist . size ĊĊĠĠĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ?): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcustom View : ĠView ĊĠĠĠĠĠĠĠ Ġval ĠviewHolder : ĠViewHolder ĊĠĠĠĠĠĠĠ Ġif Ġ( convert View Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom View Ġ= ĠLayoutInflater . from ( parent ?. context ). inflate ( R . layout . lv _ item , parent , false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : ĠTextView Ġ= Ġcustom View . findViewById ( R . id . tv _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimg : ĠImageView Ġ= Ġcustom View . findViewById ( R . id . img _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder Ġ= ĠViewHolder ( name , img ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom View . tag Ġ= ĠviewHolder ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom View Ġ= ĠconvertView ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder Ġ= Ġcustom View . tag Ġas ĠViewHolder ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfruit Ġ= ĠgetItem ( position ) Ġas ĠF ruit ĊĠĠĠĠĠĠĠ Ġif Ġ( fruit Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . tv . text Ġ= Ġfruit . name ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . img . setImage Resource ( fruit . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcustom View ĊĠĠĠ Ġ} ĊĠĠĠ Ġinner Ġclass ĠViewHolder ( val Ġtv : ĠTextView , val Ġimg : ĠImageView ) Ċ } Ċ