【发布时间】:2021-05-31 03:59:30
【问题描述】:
class TodoAdapter (var todos:List<Todo>) : RecyclerView.Adapter<TodoAdapter.TodoViewHolder>() {
inner class TodoViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TodoViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.todo_layout, parent, false)
return TodoViewHolder(view)
}
override fun onBindViewHolder(holder: TodoViewHolder, position: Int) {
holder.itemView.apply {
}
}
override fun getItemCount(): Int {
return todos.size
}
}
这是适配器类。
Link to layout xml file for adapter class
我想要的是从里面的xml文件中访问复选框和textview
holder.itemView.apply{
tvTask.text = todos[position].title
cbTask.isChecked = todos[position].isChecked
}
title和isChecked分别是在字符串和布尔类型的数据类中声明的变量
我的内部类包含 itemViews,因为我正在尝试制作一个待办事项应用程序。所以它将项目返回给构造函数。
【问题讨论】:
-
您的代码似乎没问题,您的具体问题是什么?
-
好吧,我们不能使用 kotlin 合成访问 textview 和 checkboxes 和其他视图,因为它已被弃用。
-
如果它在 MainActivity.kt 中,我会使用 ViewBinding 并访问视图/按钮/复选框。
-
该行应该是这样的: holder.itemView.apply { binding.tvTask.text = todos[position].title binding.cbTask.isChecked = todos[position].isChecked } 但这不是' t 工作,因为我不知道如何在这种情况下使用 ViewBinding。
标签: android kotlin android-layout android-recyclerview