Files
Health-Journal-App/app/src/main/java/com/healthjournal/ui/recommendation/RecomendationAdapter.kt
Diassdp d96b96bf42 Second Commit:
Version 1.5 [Partialy Optimized Version] [UI Fixes And Improvment]
Todo:
Optimized the Code
Add String Theolgy
2025-02-10 10:23:19 +07:00

41 lines
1.5 KiB
Kotlin

package com.healthjournal.ui.recommendation
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.CheckBox
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.healthjournal.R
class RecommendationAdapter(
private val recommendationList: List<Pair<String, Boolean>>,
private val onCheckedChange: (position: Int, isChecked: Boolean) -> Unit
) : RecyclerView.Adapter<RecommendationAdapter.RecommendationViewHolder>() {
inner class RecommendationViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val tvGoal: TextView = view.findViewById(R.id.tv_goal)
val checkBox: CheckBox = view.findViewById(R.id.toggle)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecommendationViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_goals_recommendation, parent, false)
return RecommendationViewHolder(view)
}
override fun onBindViewHolder(holder: RecommendationViewHolder, position: Int) {
val (task, isCompleted) = recommendationList[position]
holder.tvGoal.text = task
holder.checkBox.isChecked = isCompleted
holder.checkBox.setOnCheckedChangeListener { _, isChecked ->
onCheckedChange(position, isChecked)
}
holder.itemView.setOnClickListener {
holder.checkBox.isChecked = !holder.checkBox.isChecked
}
}
override fun getItemCount(): Int = recommendationList.size
}