package Ġme . mo odi 1 9 9 9 . example Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . fragment . Nav Host Fragment . find Nav Controller Ċ import Ġme . mo odi 1 9 9 9 . argument _ annotation . annotation . Argument Ċ import Ġme . mo odi 1 9 9 9 . argument _ annotation . annotation . Argument Builder Target Ċ import Ġme . mo odi 1 9 9 9 . example . databinding . Fragment Second Binding Ċ import Ġjava . io . Serializable Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass Ġas Ġthe Ġsecond Ġdestination Ġin Ġthe Ġnavigation . Ċ Ġ*/ Ċ //@ Argument Builder Target Ċ // class ĠSome Test y Class ( val Ġa : ĠInt ) Ġ: ĠSerializable Ċ Ċ @ Argument Builder Target ( include Parents Argument Ġ= Ġtrue ) Ċ open Ġclass ĠSecond Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ@ Argument ĊĠĠĠ Ġopen Ġlateinit Ġvar Ġtest : ĠTest Se aled Class ĊĊĠĠĠ Ġ@ Argument ( isRequired Ġ= Ġtrue ) ĊĠĠĠ Ġopen Ġvar Ġsome Parcelable Test y Test : ĠParcel able Class ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Argument ( isRequired Ġ= Ġfalse ) ĊĠĠĠ Ġopen Ġvar Ġlist Test : ĠMutable List < Parcelable Class > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġ@ Argument ( isRequired Ġ= Ġfalse ) ĊĠĠĠ Ġopen Ġvar Ġarray 1 : ĠArray < Int ?> Ġ= ĠarrayOf () ĊĊĠĠĠ Ġ@ Argument ( isRequired Ġ= Ġfalse ) ĊĠĠĠ Ġopen Ġvar Ġarray 2 : ĠArray < String ?> Ġ= ĠarrayOf () ĊĊĠĠĠ Ġ@ Argument ( isRequired Ġ= Ġfalse ) ĊĠĠĠ Ġopen Ġvar Ġarray 3 : ĠArray < CharSequence ?> Ġ= ĠarrayOf () ĊĊĠĠĠ Ġ@ Argument ( isRequired Ġ= Ġfalse ) ĊĠĠĠ Ġopen Ġvar ĠintArray : ĠInt Array Ġ= Ġint ArrayOf ( 0 ) ĊĊĠĠĠ Ġ@ Argument ( isRequired Ġ= Ġtrue ) ĊĠĠĠ Ġopen Ġvar Ġstring : ĠString ? Ġ= Ġ"" ĊĊĠĠĠ Ġ@ Argument ( isRequired Ġ= Ġfalse ) ĊĠĠĠ Ġopen Ġvar Ġserial izable Class : ĠSerializable Class ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Argument ĊĠĠĠ Ġopen Ġvar Ġsome Parcelable Map Test y Test : ĠMap < Parcelable Class ?, ĠString ?> ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Second Binding ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠThis Ġproperty Ġis Ġonly Ġvalid Ġbetween ĠonCreate View Ġand ĊĠĠĠ Ġ// Ġon Destroy View . ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Second Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbinding . button Second . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller ( this ). navigate ( R . id . action _ Second Fragment _ to _ First Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠSome Test y Enum ( val Ġvalue : ĠString ) Ġ{ ĊĠĠĠ ĠFirst (""), ĊĠĠĠ ĠSecond (" mam mad ") Ċ } Ċ