package Ġcom . example . mult ith read demo Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . mult ith read demo . databinding . Item Binding Ċ Ċ /** Ċ Ġ* ĠĠĠ ĠAuthor Ġ: Ġwx z Ċ Ġ* ĠĠĠ ĠTime ĠĠ Ġ: Ġ 2 0 2 1 / 1 2 / 2 0 Ċ Ġ* ĠĠĠ ĠDesc ĠĠ Ġ: Ċ Ġ*/ Ċ class ĠItem Adapter ( val Ġcontext : ĠContext , Ġval Ġlist : ĠMutable List < Bean >, val Ġaction : Ġ(( Bean , Int , Item Adapter ) Ġ-> ĠUnit )? Ġ= null ): ĊĠĠĠ ĠRecyclerView . Adapter < Item Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( item View : ĠView , val Ġbinding : ĠItem Binding ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠItem Binding . inflate ( LayoutInflater . from ( context )) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( binding . root , binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . binding . name . text Ġ= Ġ" download Ġ${ position + 1 }" ĊĠĠĠĠĠĠĠ Ġholder . binding . download . text Ġ= Ġwhen Ġ( list [ position ]. download State ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 -> {" ä¸ĭè½½ "} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 -> {" ä¸ĭè½½ ä¸Ń "} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 -> {" ç»§ç»Ń ä¸ĭè½½ "} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 -> {" ä¸ĭè½½ ä¸Ń "} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 -> {" ä¸ĭè½½ å®ĮæĪĲ "} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse -> {" ä¸ĭè½½ "} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . binding . progress . progress Ġ= Ġlist [ position ]. progress ĊĠĠĠĠĠĠĠ Ġholder . binding . index . text Ġ= Ġ"${ list [ position ]. progress } %" ĊĠĠĠĠĠĠĠ Ġholder . binding . download . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( list [ position ]. download State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ->{ list [ position ]. download State Ġ= Ġ 0 } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ list [ position ]. download State Ġ= Ġ 1 } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ->{ list [ position ]. download State Ġ= Ġ 2 } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 ->{ list [ position ]. download State Ġ= Ġ 1 } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist [ position ]. download State Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ?. let Ġ{ Ġit 1 Ġ-> Ġit 1 ( list [ position ], position , this ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist . size ĊĠĠĠ Ġ} Ċ }