package Ġcom . jon athan ar ac il . list am enu context ual Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . ContextMenu Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . widget .* Ċ import Ġandroidx . activity . result . contract . Activity Result Contracts Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . jon athan ar ac il . list am enu context ual . databinding . Activity Main Binding Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġvar Ġdatos Ġ= Ġmutable ListOf < String >() ĊĠĠĠ Ġlateinit Ġvar Ġbinding : ĠActivity Main Binding ĊĠĠĠ Ġlateinit Ġvar Ġadapt ador Ġ: ĠArray Adapter < String >; ĊĠĠĠ Ġvar Ġo pcion Ġ= Ġ"" ĊĠĠĠ Ġvar Ġpos icion Mod ificar Ġ= Ġ 0 ; ĊĠĠĠ Ġvar Ġl anz ador Ġ= ĊĠĠĠĠĠĠĠ Ġregister For Activity Result ( Activity Result Contracts . Start Activity For Result ()) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata : ĠIntent ? Ġ= Ġresult . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresp uesta Ġ= Ġ"${ data . getString Extra (" dat o "). toString () }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( op cion Ġ== Ġ" Mod ificar "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatos . set ( pos icion Mod ificar , Ġresp uesta ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatos . add ( resp uesta ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguard ar Datos () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Main Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġc argar Datos () ĊĠĠĠĠĠĠĠ Ġadapt ador Ġ= ĠArray Adapter ( this , Ġandroid . R . layout . simple _ list _ item _ 1 , Ġdatos ) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġlista Ġ: ĠListView Ġ= Ġ( binding . lv Datos ) ĊĠĠĠĠĠĠĠ Ġlista . adapter Ġ= Ġadapt ador ĊĠĠĠĠĠĠĠ Ġregister For ContextMenu ( lista ) ĊĠĠĠĠĠĠĠ Ġbinding . fab Datos . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġab rir Vent ana () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ContextMenu ( ĊĠĠĠĠĠĠĠ Ġmenu : ĠContext Menu ?, ĊĠĠĠĠĠĠĠ Ġv : ĠView ?, ĊĠĠĠĠĠĠĠ Ġmenu Info : ĠContext Menu . ContextMenu Info ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ContextMenu ( menu , Ġv , Ġmenu Info ) ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ context ual , Ġmenu ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Context ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Form a Ġl arga ĊĠĠĠĠĠĠĠ Ġ/* val Ġinfo Ġ= Ġitem . menu Info Ġas ĠAdapter View . Adapter ContextMenu Info ĊĠĠĠĠĠĠĠ Ġval Ġpos icion Ġ= Ġinfo . position */ ĊĠĠĠĠĠĠĠ Ġval Ġpos icion Ġ= Ġ( item . menu Info Ġas ĠAdapter View . Adapter ContextMenu Info ). position ĊĠĠĠĠĠĠĠ Ġval Ġnombre Ġ= Ġdatos [ pos icion ] ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . opc Mod ificar Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġab rir Vent ana () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Mod ificar Ġ$ nombre ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġo pcion Ġ= Ġ" Mod ificar " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpos icion Mod ificar Ġ= Ġpos icion ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapt ador . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . opc Eliminar Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Eliminar Ġ$ nombre ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatos . remove At ( pos icion ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapt ador . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguard ar Datos () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġab rir Vent ana (){ ĊĠĠĠĠĠĠĠ Ġval Ġmi Intent Ġ= ĠIntent ( this , ĠActivity Datos :: class . java ) ĊĠĠĠĠĠĠĠ Ġl anz ador . launch ( mi Intent ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġguard ar Datos (){ ĊĠĠĠĠĠĠĠ Ġvar Ġcont ador Ġ= Ġ 1 ; ĊĠĠĠĠĠĠĠ Ġval Ġcantidad Ġ= Ġdatos . size ĊĠĠĠĠĠĠĠ Ġval Ġpref Ġ= Ġapplication Context . get SharedPreferences (" datos ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġpref . edit () ĊĠĠĠĠĠĠĠ Ġeditor . put Int (" valor ", Ġcantidad ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( dat o Ġin Ġdatos ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" valor "+ cont ador , Ġdat o ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcont ador ++; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġc argar Datos (){ ĊĠĠĠĠĠĠĠ Ġval Ġpref Ġ= Ġapplication Context . get SharedPreferences (" datos ", Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġcantidad Ġ= Ġpref . getInt (" valor ", Ġ 2 0 ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. cantidad ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatos . add ( pref . getString (" valor "+ i , Ġ" No Ġse Ġhan Ġen con tra od Ġdatos ") !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }