dimanche 7 juin 2020

How to update ProgressBar using CheckBox?

Good evening to all!

I have a RecyclerView, 5 fragments, in each fragment have a list, in the list - two TextView lines and one CheckBox, the question is, when you click on CheckBox, the ProgressBar should be updated, how to do it?

It should be updated in one fragment, when switching to the second fragment, there should be 0%!

Adapter Code:

class RVAClass(private val context: Context, private val lt: List<PClass>, private val key: String) : RecyclerView.Adapter<RVAClass.ViewHolder>() {
    private val inflater: LayoutInflater = LayoutInflater.from(context)
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val view = inflater.inflate(R.layout.list_item, parent, false)
        return ViewHolder(view)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val list = lt[position]
        holder.sName1.text = list.sText1
        holder.sName5.text = list.sText3
        holder.sName2.text = list.sText2
        holder.sName5.setTextColor(ContextCompat.getColor(context, R.color.tintcolor2_off))
        holder.sName5.setOnCheckedChangeListener(null)

        //SharedPreferences
        if (load(key + holder.adapterPosition, context)) {
            holder.sName5.isChecked = true
            holder.sName5.setTextColor(ContextCompat.getColor(context, R.color.tintcolor2_on))
            holder.sName4.setBackgroundResource(R.drawable.card_bg_act)
        } else {
            holder.sName5.isChecked = false
        }

        //Cards set
        holder.sName4.setOnClickListener {
                holder.sName5.isChecked = true
                holder.sName5.setTextColor(ContextCompat.getColor(context, R.color.tintcolor2_on))
                holder.sName4.setBackgroundResource(R.drawable.card_bg_act)
                save(true, key + holder.adapterPosition, context)
            }

        //Checkboxes set
        holder.sName5.setOnCheckedChangeListener { _, _ ->
            if (holder.sName5.isChecked) {
                holder.sName5.isChecked = true
                holder.sName5.setTextColor(ContextCompat.getColor(context, R.color.tintcolor2_on))
                holder.sName4.setBackgroundResource(R.drawable.card_bg_act)
                save(true, key + holder.adapterPosition, context)
            } else {
                holder.sName5.isChecked = false
                holder.sName5.setTextColor(ContextCompat.getColor(context, R.color.tintcolor2_off))
                holder.sName4.setBackgroundResource(R.drawable.card_bg_noact)
                save(false, key + holder.adapterPosition, context)
            }
        }
    }

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

    class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
        val sName1: TextView = view.findViewById(R.id.lblListItem)
        val sName2: TextView = view.findViewById(R.id.lblListItem2)
        val sName5: CheckBox = view.findViewById(R.id.checkBox2)
        //val sName6: ProgressBar = view.findViewById(R.id.progressBar)
        val sName4: RelativeLayout = view.findViewById(R.id.item_card)

    }

    override fun getItemId(position: Int): Long {
        return position.toLong()
    }

    override fun getItemViewType(position: Int): Int {
        return position
    }

}



Aucun commentaire:

Enregistrer un commentaire