다중 선택 RecyclerView

데이터 클래스

data class PlanetSelect(
    var planet:String,
    var isSelected:Boolean = false
)

isSelected를 사용할 수 있습니다.

class HVHListAdapter(var context: Context, var data: MutableList<PlanetSelect>, callback:((MutableList<PlanetSelect>)-> Unit)): RecyclerView.Adapter<RecyclerView.ViewHolder>(){

    lateinit var mainActivity :MainActivity

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
        return Holder(HvhListDataBinding.inflate(LayoutInflater.from(parent.context),parent,false))
    }

    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
        val binding = (holder as Holder).binding
        var temp = data.get(position)
        binding.textNumber.text = temp.planet

        holder.itemView.setOnClickListener(){
            if(temp.isSelected == false) {
                holder.itemView.setBackgroundColor(Color.parseColor("#90CAF9"))
                temp.isSelected = true
            }else{
                holder.itemView.setBackgroundColor(Color.parseColor("#FFFFFF"))
                temp.isSelected = false
            }
        }
    }


    override fun getItemCount(): Int {
        return data.size
    }



    inner class Holder(val binding : HvhListDataBinding): RecyclerView.ViewHolder(binding.root){

        init {

        }
    }
}