import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . example . kotlin recyclerview . databinding . Activity Main Binding Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroidx . annotation . Requires Api ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġ Ġlateinit Ġvar Ġ Ġbinding : ĠActivity Main Binding ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . M ) ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Main Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ Ġ* Ġsteps ĊĠĠĠĠĠĠĠ Ġ* Ġ 1 . Ġset Ġthe Ġlayout ĊĠĠĠĠĠĠĠ Ġ* Ġ 2 . Ġsend Ġthe Ġvalue Ġto Ġthe Ġadapter ĊĠĠĠĠĠĠĠ Ġ* Ġ 3 . Ġset Ġthe Ġadapter ĊĠĠĠĠĠĠĠ Ġ* Ġ*/ ĊĊĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠ Ġ* Ġdifferent Ġlist Ġ Ġdesign ĊĠĠĠĠĠĠ Ġ* ĠĠ 1 . Ġfor Ġhorizontal ĊĠĠĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġrec . layout Manager Ġ= ĠLinearLayoutManager ( this , ĠLinearLayoutManager . HORIZONTAL , Ġfalse ) ĊĠĠĠĠĠĠ Ġ* Ġ 2 . Ġfor Ġvertical ĊĠĠĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġrec . layout Manager Ġ= ĠLinearLayoutManager ( this , ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠ Ġ* for Ġgrid Ġview ĊĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠ Ġ* Ġ 1 . Ġpass Ġcontext Ġand Ġthe Ġnumber Ġof Ġcolumn Ġyou Ġwant ĊĠĠĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrec . layout Manager Ġ= ĠGrid LayoutManager ( this , 2 ) ĊĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠ Ġ* Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġvar Ġto Do List Ġ= Ġmutable ListOf ( ToDo (" Demo ", Ġfalse )) Ġ// Ġdemo Ġlist . ĠOpen s Ġevery Ġtime Ġyou Ġstart Ġthe Ġapp ĊĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠTo Do Adapter ( to Do List ) Ġ// Ġsetting Ġthe Ġlist Ġto Ġthe Ġadapter ĊĠĠĠĠĠĠĠ Ġbinding . rv . adapter Ġ= Ġadapter Ġ// Ġsetting Ġthe Ġadapter ĊĠĠĠĠĠĠĠ Ġbinding . rv . layout Manager = ĠLinearLayoutManager ( this ) Ġ// setting Ġthe Ġlay Ġout Ġmanager . ĊĊĠĠĠĠĠĠĠ Ġbinding . add . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġbinding . et Todo . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtodo Ġ= ĠTo Do ( title , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Do List . add ( todo ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify Item Inserted ( to Do List . size - 1 ) Ġ// Ġnotify ing Ġdata Ġset Ġchanged ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss Keyboard ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// adapter . notify DataSet Changed () Ġ Ġ> Ġnot Ġrecommended Ġbe cas ue Ġit Ġwill Ġgo Ġthrough Ġall Ġthe Ġitems ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġkeeps Ġthe Ġkeyboard Ġdown Ġwhen Ġyou Ġpress ĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . M ) ĊĠĠĠ Ġfun Ġdismiss Keyboard ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimm : ĠInput Method Manager Ġ= Ġactivity . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġactivity . current Focus ) Ġimm . hide Soft Input From Window ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . current Focus !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. application Window Token , Ġ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ