package Ġde . check 2 4 . compose . demo . features . observable s Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġde . check 2 4 . compose . demo . R Ċ import Ġde . check 2 4 . compose . demo . databinding . Observable Types Binding Ċ Ċ class ĠAndroid UI Observable Types Activity : AppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġbinding : ĠObservable Types Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠviewModel Ġ= ĠObservable ViewModel () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠObservable Types Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding ?. root ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. title Ġ= Ġ" Observable Ġtypes " ĊĊĠĠĠĠĠĠĠ ĠviewModel . is Clicked . observe ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( binding ?. view Box , ĠviewModel . is Clicked ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding ?. observable Switch ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . onClick () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset BackgroundColor ( view Box : ĠView ?, Ġclicked : ĠMutable LiveData < Boolean >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( clicked . value Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewBox ?. setBackground Resource ( R . color . green _ 2 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewBox ?. setBackground Resource ( R . color . blue _ 2 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠObservable ViewModel : ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġis Clicked : ĠMutable LiveData < Boolean > Ġ= ĠMutable LiveData ( false ) ĊĊĠĠĠ Ġfun ĠonClick () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Clicked . value Ġ= Ġ!( is Clicked . value Ġ?: Ġfalse ) ĊĠĠĠ Ġ} Ċ }