내가 구현 한 RecyclerView.ViewHolder 서브 클래스 아래와 같이 추가 속성을 액세스 할 수 없습니다 RecyclerView.Adapter의 :코 틀린 - - RecyclerView.ViewHolder 서브 클래스
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
}
}
그러나 컴파일러가 불평 - 여기
Unresolved reference: 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) { }
}
여기에 무엇이든 놓치면 어떤 아이디어가 있습니까? 제발 제안 해주세요.
관련 항목 : https://stackoverflow.com/questions/45821929/in-which-situation-val-var-is-necessary-in-kotlin-constructor-parameter – BakaWaii
안녕하세요, BakaWaii가 참고 링크를 제공해 주셔서 감사합니다. – Devarshi