package Ġpt . vil h ena . list it . ativ idades Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Base Adapter Ċ import Ġkotlinx . android . synt hetic . main . activity _ nova _ lista .* Ċ import Ġkotlinx . android . synt hetic . main . activity _ ver _ prod utos .* Ċ import Ġkotlinx . android . synt hetic . main . ent rada _ produto . view .* Ċ import Ġpt . vil h ena . list it . MainActivity Ċ import Ġpt . vil h ena . list it . R Ċ import Ġpt . vil h ena . list it . logic a . Dados Ċ import Ġpt . vil h ena . list it . logic a . Produto Ċ Ċ class ĠN ova Lista Ġ: ĠActivity () Ġ{ ĊĠĠĠ Ġvar Ġlista Prod utos Ġ= ĠArrayList < Produto >() ĊĠĠĠ Ġlateinit Ġvar Ġdados Ġ: ĠD ados ĊĠĠĠ Ġvar Ġadapter : ĠPro dut os Adapter ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ nova _ lista ) ĊĊĠĠĠĠĠĠĠ Ġdados Ġ= Ġintent . get Serializable Extra (" dados ") Ġas ĠD ados ĊĊĊĠĠĠĠĠĠĠ Ġlista Prod utos Ġ= Ġdados . get ArrayList as (). last (). getList a Prod utos () ĊĊĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠPro dut os Adapter ( this , Ġlista Prod utos ) ĊĊĠĠĠĠĠĠĠ Ġg rel ha Prod utos Lista . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġg rel ha Prod utos Lista . setOn ItemClickListener Ġ{ Ġparent , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠEd ita Produto :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" dados ", Ġdados ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" pos icao Produto ", Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠPro dut os Adapter Ġ: ĠBase Adapter Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġlista Prod utos Ġ= ĠArrayList < Produto >() ĊĠĠĠĠĠĠĠ Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġconstructor ( context : ĠContext , Ġlista Prod utos : ĠArrayList < Produto >) Ġ: Ġsuper (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . context = context ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . lista Prod utos = lista Prod utos ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlista Prod utos . size ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlista Prod utos [ position ] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġposition . to Long () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ?): ĠView Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprod uto Ġ= Ġthis . lista Prod utos [ position ] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġinfl ator Ġ= Ġcontext !!. getSystem Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġprod uto View Ġ= Ġinfl ator . inflate ( R . layout . ent rada _ produto , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprod uto View . design acao Prod utos . text Ġ= Ġprod uto . design acao ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprod uto View . quant idade Prod utos . text Ġ= Ġprod uto . quant idade . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprod uto View . un idade Prod utos . text Ġ= Ġprod uto . un idade ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġprod uto View ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonClick Btn Minus ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠRemove Produto Lista :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" dados ", Ġdados ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonClick Btn Add ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠMenu Ad icionar Produto :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" dados ", Ġdados ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonClick Btn Save ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠGuard ar Lista :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" dados ", Ġdados ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġdados . remove Lista ( dados . get ArrayList as (). last Index ) ĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠMenu Cri ar Lista :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" dados ", Ġdados ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} Ċ }