package Ġcom . B elle w . recipes . activities Ċ Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . B elle w . recipes . R Ċ Ċ class ĠRecipe New Direction Card ( item View : ĠView ): ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlabel Ġ= ĠitemView . findViewById < TextView >( R . id . recipe _ new _ direction _ step _ label ) ĊĠĠĠ Ġval Ġstep Ġ= ĠitemView . findViewById < EditText >( R . id . recipe _ new _ direction _ step ) ĊĠĠĠ Ġvar Ġstep Text Watcher : ĠText Watcher ? Ġ= Ġnull ĊĠĠĠ Ġlateinit Ġvar Ġresults : ĠMutable List < String > ĊĊĠĠĠ Ġfun Ġbind (_ result : ĠMutable List < String >, Ġstep Num : ĠInt ){ ĊĠĠĠĠĠĠĠ Ġresults Ġ= Ġ_ result ĊĠĠĠĠĠĠĠ Ġset Bindings ( step Num ) ĊĠĠĠĠĠĠĠ Ġlabel . setText (" Step Ġ" Ġ+ Ġ( step Num + 1 ). toString () Ġ+ Ġ": ") ĊĠĠĠĠĠĠĠ Ġstep . setText ( results [ step Num ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ ĠWe Ġneed Ġthe Ġrecipe _ new _ direction _ step Ġedit Text Ġvalues Ġto Ġbe Ġpersisted Ġon Ġchange . ĠBy Ġadding Ġa ĠText Watcher Ġwe Ġcan ĊĠĠĠĠĠĠĠ Ġsave Ġthe Ġvalues Ġback Ġto Ġthe Ġresults Ġlist . ĠHowever , Ġthis Ġbeing Ġa Ġre cyclerView , Ġthis Ġcard Ġcould Ġvery Ġwell Ġbe ĊĠĠĠĠĠĠĠ Ġreused Ġfor Ġa Ġdifferent Ġdirection Ġlater Ġon . ĠTherefore , Ġwe Ġneed Ġto Ġkeep Ġa Ġreference Ġto Ġthe ĠText Watcher Ġso Ġwe Ġcan ĊĠĠĠĠĠĠĠ Ġremove Ġit Ġif Ġthis Ġhappens . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Bindings ( position : ĠInt ){ ĊĠĠĠĠĠĠĠ Ġif ( step Text Watcher Ġ!= Ġnull ) Ġstep . remove TextChanged Listener ( step Text Watcher ) ĊĊĠĠĠĠĠĠĠ Ġstep Text Watcher Ġ= Ġobject Ġ: ĠText Watcher Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs : ĠCharSequence , Ġstart : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount : ĠInt , Ġafter : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresults [ position ] Ġ= Ġs . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġstep . add TextChanged Listener ( step Text Watcher ) ĊĠĠĠ Ġ} Ċ }