Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@Arunshaik2001
Created June 18, 2022 10:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Arunshaik2001/e7a42dae914b6e32d516f0cb6fdf7b7f to your computer and use it in GitHub Desktop.
Save Arunshaik2001/e7a42dae914b6e32d516f0cb6fdf7b7f to your computer and use it in GitHub Desktop.
class ProblemsAdapter(private val problemsList: List<Problem>, private val listener: ProblemItemListener) :
RecyclerView.Adapter<ProblemsAdapter.ProblemItemViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ProblemItemViewHolder {
return ProblemItemViewHolder(
ItemViewBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
)
}
override fun onBindViewHolder(holder: ProblemItemViewHolder, position: Int) {
holder.bindItem(problemsList[position], listener)
}
override fun getItemCount(): Int {
return problemsList.size
}
class ProblemItemViewHolder(private val binding: ItemViewBinding) :
RecyclerView.ViewHolder(binding.root) {
fun bindItem(problem: Problem, listener: ProblemItemListener) {
with(itemView) {
binding.problemNumber.text = problem.problemNumber.toString()
binding.problemName.text = problem.problemName
if (problem.isLocked) {
setBackgroundColor(resources.getColor(R.color.yellow))
binding.lockedOrNot.setImageResource(R.drawable.ic_baseline_lock_24)
binding.problemName.setTextColor(resources.getColor(R.color.red))
}
setOnClickListener {
listener.onItemClicked(problem)
}
}
}
}
}
interface ProblemItemListener {
fun onItemClicked(item: Problem)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment