Kotlin Android Extensions in Adapter
Sometimes is difficult to use kotlin android extensions, the best way to use Kotlin synthetic in Adapter or ViewHolder is like this:
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = tasks[position]
holder.bind(item, checkTask, deleteTask)
}
No need to write
val tvTask = view.findViewById(R.id.tvTask) tvTask.text = task.description
Just
itemView.task_item_textView.text = task.description
Or in fun bind you can put
= with(itemView)
All the fun
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) }
}
