package Ġcom . can viz . view model with shared preference Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . Saved State Handle ĊĊ Ċ class ĠMy ViewModel ( application : ĠApplication ) Ġ: ĠAndroid ViewModel ( application ) Ġ{ ĊĠĠĠ Ġprivate Ġval ĠSharedPreferences Key Ġ= Ġ" sp key " ĊĠĠĠ Ġprivate Ġval ĠSaved Number Key Ġ= Ġ" saved _ number " ĊĠĠĠ Ġprivate Ġvar Ġnumber : ĠMutable LiveData < Int > Ġ= ĠMutable LiveData ( 0 ) ĊĠĠĠ Ġprivate Ġval Ġ_ application Ġ= Ġapplication ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġload Number () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Number (){ ĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġ_ application . get SharedPreferences ( SharedPreferences Key , ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getInt ( Saved Number Key , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġnumber . value Ġ= Ġx ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġget Result (): ĠMutable LiveData < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnumber ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave Result () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ application . get SharedPreferences ( SharedPreferences Key , ĠContext . MODE _ PRIVATE ). edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Int ( Saved Number Key , Ġ( number . value Ġ?: Ġ 0 )). apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd ( x : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġ( getResult (). value ?: 0 )+ x ĊĠĠĠĠĠĠĠ Ġnumber . value Ġ= Ġresult ĊĠĠĠ Ġ} Ċ Ċ }