package Ġde . check 2 4 . compose . demo . features . state ful Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . activity . Component Activity Ċ import Ġandroidx . activity . compose . setContent Ċ import Ġandroidx . compose . foundation . background Ċ import Ġandroidx . compose . foundation . layout . Arrange ment Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . material . Sca ffold Ċ import Ġandroidx . compose . material . Switch Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . material . Top AppBar Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . runtime . setValue Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . tool ing . preview . Devices Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġde . check 2 4 . compose . demo . theme . Blue 2 0 0 Ċ import Ġde . check 2 4 . compose . demo . theme . Demo Theme Ċ import Ġde . check 2 4 . compose . demo . theme . Green 2 0 0 Ċ import Ġde . check 2 4 . compose . demo . theme . Pur ple 5 0 0 Ċ import Ġde . check 2 4 . compose . demo . theme . Red 2 0 0 Ċ Ċ class ĠComp osable State ful Activity Ġ: ĠComponent Activity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDemo Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScaffold ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Bar Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTop AppBar ( title Ġ= Ġ{ ĠText ( text Ġ= Ġ" State ful ") Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Alignment Ġ= ĠAlignment . Center ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStateful Example () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġstate ful Ġcomp os ables Ġtend Ġto Ġbe Ġless Ġre usable Ġand Ġharder Ġto Ġtest Ċ Ċ @ Composable Ċ private Ġfun ĠStateful Example () Ġ{ ĊĠĠĠ Ġ// Ġstate ful Ġmeans Ġthat Ġthe Ġcomp osable Ġmanages Ġits Ġown Ġstate ĊĠĠĠ Ġ// Ġno Ġstates Ġare Ġhandled Ġin Ġthe Ġparent Ġobject . ĊĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize (), ĊĠĠĠĠĠĠĠ Ġvertical Arrange ment Ġ= ĠArrange ment . Center , ĊĠĠĠĠĠĠĠ Ġhorizontal Alignment Ġ= ĠAlignment . Center H orizontally ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠMy Switch () ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠMy Switch () Ġ{ ĊĠĠĠ Ġ// Ġthe Ġstate ĊĠĠĠ Ġvar Ġis Clicked Ġby Ġremember Ġ{ Ġmutable State Of ( false ) Ġ} ĊĊĠĠĠ ĠSwitch ( ĊĠĠĠĠĠĠĠ Ġchecked Ġ= Ġis Clicked , ĊĠĠĠĠĠĠĠ Ġ// Ġthe Ġchild Ġmanages Ġits Ġown Ġstate ĊĠĠĠĠĠĠĠ Ġon Checked Change Ġ= Ġ{ Ġis Clicked Ġ= Ġ! is Clicked Ġ} ĊĠĠĠ Ġ) ĊĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 1 5 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Clicked ) ĠGreen 2 0 0 Ġelse ĠBlue 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Preview ( show Background Ġ= Ġtrue , Ġshow System Ui Ġ= Ġtrue , Ġdevice Ġ= ĠDevices . PIXEL _ 4 ) Ċ @ Composable Ċ private Ġfun ĠStateful Example Preview () Ġ{ ĊĠĠĠ ĠDemo Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠStateful Example () ĊĠĠĠ Ġ} Ċ }