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