gpt4 book ai didi

java - Kotlin android studio holder.itemview 问题

转载 作者:行者123 更新时间:2023-12-04 23:54:15 26 4
gpt4 key购买 nike

我正在尝试根据我在 youtube 上关注的 tut 来制作这个移动笔记应用程序,他没有这个错误,我一遍又一遍地观看我有一个名为 NotesAdapter 的文件

     holder.itemView.titleTV.text = notesList[position]!!.title
holder.itemView.descTV.text = notesList[position]!!.description
holder.itemView.idTV.text = notesList[position]!!.id.toString()

titleTV、descTV 和 idTV 给出错误“未解析的引用:title TV”等。这会阻止应用程序运行,任何人都可以提供帮助吗?

package com.example.moradinotepad

import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import io.realm.RealmResults


class NotesAdapter (private val context: Context?, private val notesList: RealmResults<Notes>)
:RecyclerView.Adapter<RecyclerView.ViewHolder>()
{
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder
{
val v = LayoutInflater.from(parent.context).inflate(R.layout.notes_rv_layout,parent,false)
return ViewHolder(v)
}

override fun getItemCount(): Int
{
return notesList.size
}

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int)
{

holder.itemView.titleTV.text = notesList[position]!!.title
holder.itemView.descTV.text = notesList[position]!!.description
holder.itemView.idTV.text = notesList[position]!!.id.toString()

}
class ViewHolder(v: View?): RecyclerView.ViewHolder(v!!){
val title = itemView.findViewById<TextView>(R.id.titleTV)
val desc = itemView.findViewById<TextView>(R.id.descTV)
val id = itemView.findViewById<TextView>(R.id.idTV)
}

}

最佳答案

编辑:Kotlin Android 扩展现已弃用。 See here.


您要么缺少 Android KTX 扩展,这需要您将它们添加到 app/build.gradle 文件的顶部,如下所示:

apply plugin: 'kotlin-android-extensions'

和/或您在此 .kt 文件的顶部缺少对合成 View 的导入。当您缺少导入时,可以将光标放在有错误的代码上,按 Alt+Enter,然后选择导入相关类或函数的选项。

就是说,现在有了 view binding,合成 View 有点过时了。 . View 绑定(bind)使创建 ViewHolder 变得更加容易,因为它为您缓存了所有 View 引用。使用 View 绑定(bind),您的 ViewHolder 类将只是:

class ViewHolder (val binding: NotesRvLayoutBinding): RecyclerView.ViewHolder(binding.root)

并且 onCreateViewHolder 变为:

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder
{
val binding = NotesRvLayoutBinding.inflate(LayoutInflater.from(parent.context))
return ViewHolder(binding)
}

并且 onBindViewHolder 变为:

    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int)
{

holder.binding.titleTV.text = notesList[position].title
holder.binding.descTV.text = notesList[position].description
holder.binding.idTV.text = notesList[position].id.toString()

}

关于java - Kotlin android studio holder.itemview 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64744959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com