-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTaskAdapter.kt
More file actions
executable file
·39 lines (32 loc) · 1.44 KB
/
Copy pathTaskAdapter.kt
File metadata and controls
executable file
·39 lines (32 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.thedeveloperworldisyours.mytasks.task
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.thedeveloperworldisyours.mytasks.R
import com.thedeveloperworldisyours.mytasks.database.Task
import kotlinx.android.synthetic.main.task_item.view.*
class TaskAdapter(
val tasks: List<Task>,
val checkTask: (Task) -> Unit,
val deleteTask: (Task) -> Unit) : RecyclerView.Adapter<TaskAdapter.ViewHolder>() {
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = tasks[position]
holder.bind(item, checkTask, deleteTask)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val layoutInflater = LayoutInflater.from(parent.context)
return ViewHolder(layoutInflater.inflate(R.layout.task_item, parent, false))
}
override fun getItemCount(): Int {
return tasks.size
}
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
fun bind(task: Task, checkTask: (Task) -> Unit, deleteTask: (Task) -> Unit) = with(itemView){
task_item_textView.text = task.description
task_item_done_checkBox.isChecked = task.completed
task_item_done_checkBox.setOnClickListener{checkTask(task)}
setOnClickListener { deleteTask(task) }
}
}
}