package be.kuleuven.howlongtobeat 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 be.kuleuven.howlongtobeat.model.Todo class TodoAdapter(val items: List) : RecyclerView.Adapter() { inner class TodoViewHolder(currentItemView: View) : RecyclerView.ViewHolder(currentItemView) // this creates the needed ViewHolder class that links our layout XML to our viewHolder override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TodoViewHolder { // don't forget to set attachToRoot to false, otherwise it will crash! val view = LayoutInflater.from(parent.context).inflate(R.layout.item_todo, parent, false) return TodoViewHolder(view) } override fun onBindViewHolder(holder: TodoViewHolder, position: Int) { // bind the data to our items: set the todo text view text and checked state accordingly val currentTodoItem = items[position] holder.itemView.apply { val checkBoxTodo = findViewById(R.id.chkTodoDone) findViewById(R.id.txtTodoTitle).text = currentTodoItem.title checkBoxTodo.isChecked = currentTodoItem.isDone checkBoxTodo.setOnClickListener { currentTodoItem.isDone = checkBoxTodo.isChecked } } } override fun getItemCount(): Int = items.size }