package Ġcom . ar jin mc . jet pack playground Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ar jin mc . expand recyclerview . adapter . RecyclerView Adapter Ċ import Ġcom . ar jin mc . expand recyclerview . adapter . RecyclerView Multiple Type Processor Ċ import Ġcom . ar jin mc . expand recyclerview . adapter . RecyclerView ViewHolder Ċ import Ġcom . ar jin mc . expand recyclerview . style . RecyclerView Style Helper Ċ import Ġcom . ar jin mc . jet pack playground . architecture . DataStore Activity Ċ import Ġcom . ar jin mc . jet pack playground . architecture . View Binding Activity Ċ import Ġcom . ar jin mc . jet pack playground . architecture . coroutines . Cor outines Activity Ċ import Ġcom . ar jin mc . jet pack playground . architecture . databinding . Data Binding Activity Ċ import Ġcom . ar jin mc . jet pack playground . architecture . lifecycle . Lifecycle Activity Ċ import Ġcom . ar jin mc . jet pack playground . architecture . li ved ata . LiveData Activity Ċ import Ġcom . ar jin mc . jet pack playground . architecture . room . Room Activity Ċ import Ġcom . ar jin mc . jet pack playground . architecture . view model . ViewModel Activity Ċ import Ġcom . ar jin mc . jet pack playground . basic . Basic Activity Ċ import Ġcom . ar jin mc . jet pack playground . material . Bottom AppBar Activity Ċ import Ġcom . ar jin mc . jet pack playground . material . Range Slider Activity Ċ import Ġcom . ar jin mc . jet pack playground . material . text input layout . TextInput Layout Activity Ċ import Ġcom . ar jin mc . jet pack playground . ui . Sl iding Pane Layout Activity Ċ import Ġcom . ar jin mc . jet pack playground . ui . constr ain layout . Constr ain Layout Activity Ċ import Ġcom . ar jin mc . jet pack playground . ui . motion layout . Motion Layout Activity Ċ import Ġcom . ar jin mc . jet pack playground . util . Intent Util Ċ import Ġcom . ar jin mc . recyclerview decoration . RecyclerView Linear Item Decoration Ċ import Ġcom . ar jin mc . recyclerview decoration . RecyclerView Sticky Head Item Decoration Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠE min em ĠLo Ġon Ġ 2 1 / 5 / 2 0 2 1 . Ċ Ġ* Ġemail : Ġar jin mc @ hotmail . com Ċ Ġ*/ Ċ class ĠMainActivity Ġ: ĠBasic Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Rv Options : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Options Adapter : ĠRecyclerView Adapter < String > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Option List : ĠList < String > ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . act _ main ) ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Rv Options Ġ= ĠfindViewById ( R . id . rv _ options ) ĊĠĠĠĠĠĠĠ ĠRecyclerView Style Helper . to LinearLayout ( m Rv Options , ĠRecyclerView . VERTICAL ) ĊĠĠĠĠĠĠĠ Ġm Rv Options . addItem Decoration ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRecyclerView Linear Item Decoration . Builder ( getContext ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. thickness ( 2 ). color ( Color . DK GRAY ). create () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġm Rv Options . addItem Decoration ( RecyclerView Sticky Head Item Decoration . Builder (). create ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Listener () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Option List Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetContext (). resources . getString Array ( R . array . options ). asList () ĊĠĠĠĠĠĠĠ Ġm Options Adapter Ġ= ĠRecyclerView Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetContext (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Option List , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( R . layout . item _ main _ opt ons _ group , ĠR . layout . item _ main _ opt ons ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠRecyclerView Multiple Type Processor < String >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder : ĠRecyclerView ViewHolder ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoption Name : ĠString ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtv Option Ġ= Ġholder !!. getView < TextView >( R . id . tv _ option _ name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Option . text Ġ= Ġoption Name ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( option Name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgo Activity ( option Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( m Option List [ position ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . architecture ) Ġ-> Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . ui ) Ġ-> Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . behavior ) Ġ-> Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . material ) Ġ-> Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġm Rv Options . adapter Ġ= Ġm Options Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgo Activity ( option Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( option Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . arch _ room ) Ġ-> ĠstartActivity ( Room Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . arch _ view _ binding ) Ġ-> ĠstartActivity ( View Binding Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . arch _ data _ store ) Ġ-> ĠstartActivity ( DataStore Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . ui _ constr ain _ layout ) Ġ-> ĠstartActivity ( Constr ain Layout Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . ui _ motion _ layout ) Ġ-> ĠstartActivity ( Motion Layout Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . material _ range _ slider ) Ġ-> ĠstartActivity ( Range Slider Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . material _ text _ input _ layout ) Ġ-> ĠstartActivity ( TextInput Layout Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . arch _ view _ model ) Ġ-> ĠstartActivity ( ViewModel Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . arch _ live _ data ) Ġ-> ĠstartActivity ( LiveData Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . arch _ lifecycle ) Ġ-> ĠstartActivity ( Lifecycle Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . arch _ data _ binding ) Ġ-> ĠstartActivity ( Data Binding Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . arch _ coroutine ) Ġ-> ĠstartActivity ( Cor outines Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . material _ bottom _ app _ bar ) Ġ-> ĠstartActivity ( Bottom AppBar Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . ui _ sl iding _ pane _ layout ) Ġ-> ĠstartActivity ( Sl iding Pane Layout Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠstartActivity ( cl z : ĠClass <* >) Ġ{ ĊĠĠĠĠĠĠĠ ĠIntent Util . startActivity ( getContext (), Ġcl z ) ĊĠĠĠ Ġ} Ċ }