package Ġcom . j erry . w uw en . ui . search Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . os . Message Ċ import Ġandroid . text . Layout Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . core . widget . add TextChanged Listener Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . j erry . w uw en . R Ċ import Ġcom . j erry . w uw en . ui . main interface . Main interface ViewModel Ċ import Ġkotlinx . android . synt hetic . main . activity _ search .* Ċ import Ġokhttp 3 .* Ċ import Ġorg . js oup . J soup Ċ import Ġjava . io . IOException Ċ import Ġjava . lang . Exception Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġkotlin . concurrent . thread ĊĊĊ Ċ private Ġval Ġpicture List = ArrayList < Picture >() ĊĊ Ċ class ĠSearch Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĊĊĊĊĊĊ ĊĊĊĊĊ ĊĊĠĠĠ Ġ// èİ·åıĸ view model å®ŀä¾ĭ ĊĠĠĠ Ġval ĠviewModel Ġby Ġlazy Ġ{ ĠViewModel Provider ( this ). get ( Main interface ViewModel :: class . java ) Ġ} ĊĠĠĠ Ġlateinit Ġvar Ġadapter : ĠPicture Adapter ĊĠĠĠ Ġlateinit Ġvar Ġhandler : ĠHandler ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// è§£æŀĲ html æĸĩä»¶ ĊĠĠĠĠĠĠĠ Ġfun Ġdemo 1 ( html test : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠJ soup . parse ( html test ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpicture List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrows Ġ= Ġdoc . select (" img ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle = doc . select (" tr ") ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġrows . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġt it len ew = title [ 1 + i * 2 ]. select (" td ")[ 0 ]. select (" strong "). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcontent = title [ 1 + i * 2 ]. select (" td ")[ 1 ]. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt it len ew = tit len ew . replace ("< strong > "," ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt it len ew = tit len ew . replace ("</ strong > "," ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent = content . replace ("< td Ġbgcolor =\" # FFFFFF \"> "," ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent = content . replace ("</ td > "," ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpicture uri = title [ 1 + i * 2 ]. select (" td ")[ 2 ]. select (" img "). attr (" src ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" å¾ĹåĪ° çļĦ title ", tit len ew . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpicture List . add ( Picture ( tit len ew ," https :"+ picture uri , content )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Ġjava . lang . Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" å¾ĹåĪ° çļĦ ï¼ļ "," æ²¡æľī åĨħå®¹ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" å¾ĹåĪ° çļĦ ï¼ļ ", rows . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg = Message () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg . what = 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . sendMessage ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Ġjava . lang . Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" å¾ĹåĪ° çļĦ ï¼ļ "," æ²¡æľī åĨħå®¹ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg = Message () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg . what = 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . sendMessage ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĊ ĊĊĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ search ) ĊĊĊĠĠĠĠĠĠĠ Ġ// çº¿ç¨ĭ æ¶Īæģ¯ ĊĊĠĠĠĠĠĠĠ Ġhandler Ġ= Ġobject Ġ: ĠHandler ( Looper . get Main Looper ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Message ( msg : ĠMessage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( msg . what ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView 2 7 . visibility = View . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éħįç½® éĢĤ éħį åĻ¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Manager = Linear LayoutManager ( this @ Search Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager = layout Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter = Picture Adapter ( picture List , this @ Search Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . adapter = adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 ->{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView 2 7 . visibility = View . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ// ä½¿ çĬ¶æĢģ æłı åĴĮ èĥĮæĻ¯ èŀ į åĲĪ ĊĠĠĠĠĠĠĠ Ġval Ġdecor View = window . decor View // æĭ¿ åĪ° å½ĵåīį çļĦ Activity çļĦ Decor View ĊĠĠĠĠĠĠĠ Ġdecor View . system Ui Visibility = ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE // è¡¨ç¤º Activity çļĦ å¸ĥå±Ģ ä¼ļ æĺ¾ç¤º åĪ° çĬ¶æĢģ æłı ä¸ĬéĿ¢ ĊĠĠĠĠĠĠĠ Ġwindow . status Bar Color = ĠColor . TRANSP ARENT // æľĢåĲİ è°ĥçĶ¨ ä¸Ģä¸ĭ status Bar Color () æĸ¹æ³ķ å°Ĩ çĬ¶æĢģ æłı è®¾ç½®ä¸º éĢı æĺİ èī² ĊĊĠĠĠĠĠĠĠ Ġ// search _ back _ layout . setBackground Resource ( R . drawable . gesture ) ĊĊĊĠĠĠĠĠĠĠ Ġ// åıĳçİ° ç¼ĸè¾ĳ æ¡Ĩ æĺ¯åĲ¦ çĶ± åĨħå®¹ åıĺåĮĸ Ċ // ĠĠĠĠĠĠĠ Ġsearch _ input _ ed t . add TextChanged Listener { ĊĠĠĠĠĠĠĠ ĠimageView 7 . setOnClickListener Ġ{ Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif ( search _ input _ ed t . text == null ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . setBackground Resource ( R . drawable . ch ax un sh ib ai ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . set BackgroundColor ( Color . parse Color ("# F 8 F 8 F 8 ")) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åıĳéĢģ è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġok HttpClient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. connect Timeout ( 1 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Timeout ( 1 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( 2 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// post æĸ¹å¼ı æıĲäº¤ çļĦæķ°æį® ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// post æĸ¹å¼ı æıĲäº¤ çļĦæķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" s ou _ su o _ q ", Ġsearch _ input _ ed t . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest : ĠRequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// sh ou yu . b mc x . com / web _ system / b mc x _ com _ www / system / file / sh ou yu / s /? ajax timestamp = 1 6 2 0 9 5 7 3 3 1 6 2 4 ") Ġ// è¯·æ±Ĥ çļĦ url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( form Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪĽå»º / Call ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪĽå»º / Call ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcall : ĠCall Ġ= Ġok HttpClient . new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĬłåħ¥ éĺŁåĪĹ Ġ å¼ĤæŃ¥ æĵįä½ľ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĬłåħ¥ éĺŁåĪĹ Ġ å¼ĤæŃ¥ æĵįä½ľ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è¯·æ±Ĥ éĶĻè¯¯ åĽŀè°ĥ æĸ¹æ³ķ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall ?, Ġe : ĠIOException ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" è¿ŀæİ¥ å¤±è´¥ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall ?, Ġresponse : ĠResponse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . code () Ġ== Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse 2 = Ġresponse . body ()?. string () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response 2 != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" æİ¥æĶ¶ åĪ°çļĦ ï¼ļ ", response . body ()?. string (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdemo 1 ( response 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// System . out . println ( response . body ()?. string ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĊĊĊ ĊĊĠĠĠĠĠĠĠ Ġ// init picture () ĊĠĠĠĠĠĠĠ Ġ// éħįç½® éĢĤ éħį åĻ¨ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager = Linear LayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager = layout Manager ĊĠĠĠĠĠĠĠ Ġval Ġadapter = Picture Adapter ( picture List , this ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter = adapter ĊĊĊĊ ĊĊĊĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġinit picture (){ ĊĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠĠĠĠĠ Ġpicture List . add ( Picture (" ä½ł å¥½ "," http :// sh ou yu . z 1 2 3 4 5 . com / data file / cl / pad _ cs . jpg "," è¿Ļæĺ¯ æĪĳä»¬çļĦ å®¶ ")) ĊĠĠĠ Ġ} Ċ } Ċ // éĢĤ éħį åĻ¨ ä¼łåħ¥ çļĦ ç±» Ċ class ĠPicture ( val Ġtitle : String , val Ġuri : String , val Ġtext : String ) Ċ // éĢĤ éħį åĻ¨ Ċ class ĠPicture Adapter ( val Ġpicture List : List < Picture >, val Ġactivity : ĠActivity ): ĊĠĠĠĠĠĠĠ ĠRecyclerView . Adapter < Picture Adapter . ViewHolder > (){ ĊĠĠĠ Ġinner Ġclass ĠViewHolder ( view : View ): RecyclerView . ViewHolder ( view ){ ĊĠĠĠĠĠĠĠ Ġval Ġpicture Image : ImageView = view . findViewById ( R . id . search _ adapter picture _ picture ) ĊĠĠĠĠĠĠĠ Ġval Ġpicture title : ĠTextView Ġ= view . findViewById ( R . id . search _ adapter title _ text ) ĊĠĠĠĠĠĠĠ Ġval Ġpicture content : TextView = view . findViewById ( R . id . search _ adapter content _ text ) ĊĠĠĠĠĠĠĠ Ġval Ġlayout : Constraint Layout = view . findViewById ( R . id . linear Layout 8 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview = LayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . search _ adapter _ layout , parent , false ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpicture = picture List [ position ] ĊĠĠĠĠĠĠĠ ĠG lide . with ( activity ). load ( picture . uri ). into ( holder . picture Image ) ĊĠĠĠĠĠĠĠ Ġholder . picture content . text = picture . text ĊĠĠĠĠĠĠĠ Ġholder . picture title . text = picture . title Ċ // ĠĠĠĠĠĠĠ Ġif ( position % 4 == 0 ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġholder . layout . set BackgroundColor ( Color . parse Color ("# DE EA FF ")) Ċ // ĠĠĠĠĠĠĠ Ġ} else Ġif Ġ( position % 4 == 1 ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġholder . layout . set BackgroundColor ( Color . parse Color ("# F DE 2 D 9 ")) Ċ // ĠĠĠĠĠĠĠ Ġ} else Ġif Ġ( position % 4 == 2 ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġholder . layout . set BackgroundColor ( Color . parse Color ("# C 4 F 2 FF ")) Ċ // ĠĠĠĠĠĠĠ Ġ} else Ġif Ġ( position % 4 == 3 ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġholder . layout . set BackgroundColor ( Color . parse Color ("# CD FF EE ")) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () = picture List . size Ċ }