package Ġcom . jul ive . adapter _ demo . sorted Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġcom . jul ive . adapter . core . into Ċ import Ġcom . jul ive . adapter . sorted . Sort edList Adapter Ċ import Ġcom . jul ive . adapter _ demo . R Ċ import Ġkotlinx . android . synt hetic . main . activity _ array _ list .* Ċ import Ġkotlinx . android . synt hetic . main . include _ button _ bottom .* Ċ import Ġkotlin . random . Random Ċ Ċ class ĠSorted Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġm Sort edList Adapter Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠSort edList Adapter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. title Ġ= Ġ" Sort edList Adapter " ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ array _ list ) ĊĠĠĠĠĠĠĠ Ġm Sort edList Adapter . into ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv _ list , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGrid LayoutManager ( this , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġrv _ list . setItem View Cache Size ( 0 ) ĊĠĠĠĠĠĠĠ Ġ( 0 .. 1 0 0 0 ). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Sort edList Adapter . add ( Sorted Item ViewModel Test (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Ġ= ĠSorted Model Test ( it , Ġ" æłĩé¢ĺ $ it ", Ġ" åī¯ æłĩé¢ĺ $ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġbtn _ left . setText (" æĸ°å¢ŀ "). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¦ģ æĥ³ æł¹æį® unique Id æĽ´æĸ° æķ°æį® ï¼Į éľĢè¦ģ è°ĥçĶ¨ update Item æĸ¹æ³ķ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Sort edList Adapter . add ( Sorted Item ViewModel Test (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Ġ= ĠSorted Model Test ( index ++, Ġ" æłĩé¢ĺ $ index ", Ġ" æĸ°å¢ŀ $ index ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn _ middle . setText (" åĪłéĻ¤ "). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Sort edList Adapter . item Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrandom Int Ġ= ĠRandom . nextInt ( 0 , Ġm Sort edList Adapter . item Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Sort edList Adapter . remove At ( random Int ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn _ right . setText (" æĽ¿æį¢ "). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæł¹æį® unique Id æĽ¿æį¢ Ġå¦Ĥæŀľ sort Id ä¸į ä¸Ģæł· å°±ä¼ļ è§¦åıĳ æİĴåºı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Sort edList Adapter . item Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrandom Int Ġ= ĠRandom . nextInt ( 0 , Ġm Sort edList Adapter . item Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Sort edList Adapter . set ( random Int , Ġm Sort edList Adapter . getItem ( random Int ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġas ĠSorted Item ViewModel Test ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . model ?. sub Title Ġ= Ġ" æĽ¿æį¢ åī¯ æłĩé¢ĺ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }