首页 > 解决方案 > 为什么 getItem 在 ListAdapter 上不起作用?

问题描述

我正在尝试为我的 recyclerView 创建一个 ListAdapter,但 getItem(position) 不起作用,它要求创建该函数。我从codelab复制并粘贴的代码。我能做些什么来修复它?

https://developer.android.com/codelabs/android-room-with-a-view-kotlin/#11


    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WordViewHolder {
        return WordViewHolder.create(parent)
    }

    override fun onBindViewHolder(holder: WordViewHolder, position: Int) {
        val current = getItem(position)
        holder.bind(current.word)
    }

    class WordViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        private val wordItemView: TextView = itemView.findViewById(R.id.textView)

        fun bind(text: String?) {
            wordItemView.text = text
        }

        companion object {
            fun create(parent: ViewGroup): WordViewHolder {
                val view: View = LayoutInflater.from(parent.context)
                    .inflate(R.layout.recyclerview_item, parent, false)
                return WordViewHolder(view)
            }
        }
    }

    class WordsComparator : DiffUtil.ItemCallback<Word>() {
        override fun areItemsTheSame(oldItem: Word, newItem: Word): Boolean {
            return oldItem === newItem
        }

        override fun areContentsTheSame(oldItem: Word, newItem: Word): Boolean {
            return oldItem.word == newItem.word
        }
    }
} ```

标签: androidkotlinandroid-recyclerviewlistadapter

解决方案


推荐阅读