我已经实现了RecycraView. ViewHolder子类如下:
class PersonViewHolder(itemView: View, binding: ViewDataBinding) : RecyclerView.ViewHolder(itemView) { }
现在,我正试图访问在它中声明的绑定属性,就像在回收站视图的子类中一样。适配器:
override fun onBindViewHolder(holder: PersonViewHolder?, position: Int) {
val person = persons[position]
if (holder != null) {
holder.binding.setVariable(BR.person, person) // line with error
holder.binding.executePendingBindings() // line with error
}
}
但编译器正在抱怨——未解析的引用:binding
以下是完整的实现:
class PersonsAdapter(private var persons: Array<Person>) : RecyclerView.Adapter<PersonsAdapter.PersonViewHolder>() {
override fun onBindViewHolder(holder: PersonViewHolder?, position: Int) {
val person = persons[position]
if (holder != null) {
holder.binding.setVariable(BR.person, person)
holder.binding.executePendingBindings()
}
}
override fun getItemCount(): Int {
return persons.size
}
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): PersonViewHolder {
val itemView = LayoutInflater.from(parent!!.context).inflate(R.layout.list_item_person, parent, false)
return PersonViewHolder(itemView, DataBindingUtil.bind(itemView))
}
class PersonViewHolder(itemView: View, binding: ViewDataBinding) : RecyclerView.ViewHolder(itemView) { }
}
如果我在这里错过了什么,有什么想法吗?请建议。
绑定:ViewDataBinding
-您只定义了一个构造函数参数,它永远不会保存为类的成员。使用var
或val
对其进行标记,使其存储参数,并使其以后可以访问。
短错误日志: 库的验证: 我阅读了所有相关的问题,例如: 无法访问ActivityCompatApi23类 尝试使用FragmentActivity时无法访问ActivityCompatApi23 错误:(59,8)错误:无法访问Android.support.v4.app.ActivityCompatApi23类文件 无法访问ActivityCompatApi23类文件 无法访问Activity
null 从我的类中调用这些代码的工作方式与我预期的一样。但是,我想在Kotlin子类之外调用其中的一个方法。 如果从不同的Kotlin类尝试,则会出现以下编译错误: 未解析得引用:completeWakefulIntent
我正在尝试将我的Android项目切换到Kotlin。我有一个< code>EditText(一个< code>TextView的子类),我想以编程方式为它设置一个提示和文本。提示按预期工作。但是,对于文本,如果我尝试使用Kotlin setter语法,就会得到类型不匹配异常: 如果我们看一下声明,我们会发现从 继承的相同签名: 我的印象是 是 的快捷方式,但显然这种印象是错误的。 被视为普通方法
问题内容: 我正在尝试从Objective-C 访问Swift类的属性。 在另一个视图控制器中,我尝试按以下方式进行访问: 而我得到 在类型’BusinessDetailViewController *’的对象上找不到属性’lat’ 为什么我不能访问此属性?我想念什么? 问题答案: 非Objective-C类型的可选值不会桥接到Objective-C中。也就是说,前三个属性下面 会 是在Objec
我一直在尝试使用githubrowsersample对sunflower应用程序示例进行Restfulise,所以我一直在尝试进行一些复制和粘贴。然而,我完全搞不懂为什么会出现这个错误。此特定代码是完整的复制和粘贴。 我收到的错误是: 错误:DataBoundViewHolder(T)在DataBoundViewHolder中不是公共的;无法从T为类型变量的包外部访问:T扩展了DataBoundV