package Ġcom . example . cup cake Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . example . cup cake . databinding . Fragment Start Binding Ċ import Ġcom . example . cup cake . model . Order ViewModel Ċ Ċ class ĠStart Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠBinding Ġobject Ġinstance Ġcorresponding Ġto Ġthe Ġfragment _ start . xml Ġlayout ĊĠĠĠĠ Ġ* ĠThis Ġproperty Ġis Ġnon - null Ġbetween Ġthe ĠonCreate View () Ġand Ġon Destroy View () Ġlifecycle Ġcallbacks , ĊĠĠĠĠ Ġ* Ġwhen Ġthe Ġview Ġhierarchy Ġis Ġattached Ġto Ġthe Ġfragment . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġbinding : ĠFragment Start Binding ? Ġ= Ġnull ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġcreate Ġa Ġreference Ġobject Ġwith ĠOrder ViewModel Ġtype ĊĠĠĠĠ Ġ* Ġthe Ġreference Ġobject Ġfrom Ġactivity ViewModels ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġshared ViewModel : ĠOrder ViewModel Ġby Ġactivity ViewModels () ĊĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġthe Ġfirst Ġfun Ġof ĠFragment Ġ-> ĠonCreate () ĊĠĠĠĠ Ġ* ĠInf late Ġthe Ġlayout ĠXML Ġfile Ġand Ġreturn Ġa Ġbinding Ġobject Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ// Ġis Ġby ĠDefault Ġis Ġcreate Ġit ĊĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġthe Ġsecond Ġfun Ġof ĠFragment Ġ-> ĠonCreate View () ĊĠĠĠĠ Ġ* ĠInf late Ġthe Ġlayout ĠXML Ġfile Ġand Ġreturn Ġa Ġbinding Ġobject Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Binding Ġ= ĠFragment Start Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= Ġfragment Binding ĊĠĠĠĠĠĠĠ Ġreturn Ġfragment Binding . root ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġthe Ġthird Ġfun Ġof ĠFragment Ġ-> Ġon View Created () ĊĠĠĠĠ Ġ* Ġcall Ġthe Ġfunctions Ġto Ġdisplay Ġon ĠUI ĊĠĠĠĠ Ġ* ĠUpdate Ġthe ĠUI ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbinding ?. start Fragment Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStart Ġan Ġorder Ġwith Ġthe Ġdesired Ġquantity Ġof Ġcup c akes Ġand Ġnavigate Ġto Ġthe Ġnext Ġscreen . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġorder Cup cake ( quantity : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġthe Ġview Ġmodel Ġwith Ġthe Ġquantity ĊĠĠĠĠĠĠĠ Ġshared ViewModel . set Quantity ( quantity ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġno Ġflavor Ġis Ġset Ġin Ġthe Ġview Ġmodel Ġyet , Ġselect Ġvanilla Ġas Ġdefault Ġflavor ĊĠĠĠĠĠĠĠ Ġif Ġ( shared ViewModel . has No Flavor Set ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared ViewModel . set Flavor ( getString ( R . string . van illa )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠNavigate Ġto Ġthe Ġnext Ġdestination Ġto Ġselect Ġthe Ġflavor Ġof Ġthe Ġcup c akes ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ start Fragment _ to _ flavor Fragment ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDestroy View ĊĠĠĠĠ Ġ*/ ĊĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġbinding Ġ= Ġnull ĊĠĠĠ Ġ} Ċ Ċ }