- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试根据我在 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/
我有一个显示为 CompositeView 的工具集合。此集合中的每个呈现项都是一个 ItemView。保存这些的区域的名称称为 toolNameRegion。 我在该页面中有另一个名为 toolDe
我有一个 RecyclerView,我在其 View 持有者构造函数中添加了一个 onGlobalLayoutListener,如下所示 public CustomViewHolder(final V
我的结构非常简单 ProductsList.TileListView = Marionette.CollectionView.extend({ tagName: 'section',
我有一个用于表的 CompositeView。我在子 ItemView 中为每一行设置了触发器... var TableRow = Marionette.ItemView.extend({ t
我有这个代码 http://jsfiddle.net/QRcF5/2/ $(function() { var Header = Backbone.Marionette.ItemView.ext
我正在使用 Backbone、Marionette 和 RequireJS 制作应用程序,但我在使用 Marionette 的 ItemView 时遇到了问题。我正在尝试渲染模板,但总是会抛出错误。
我对主干js不太陌生,但是我想将一些参数传递给itemview的“事件”部分中的事件回调。我知道回调可以像{“事件选择器”:“回调”}一样添加。但需要将参数传递给函数“回调”。我想在回调中执行 ite
我很难解释我在寻找什么,所以我将从代码开始。 我有这样的 Marionette View : Marionette.ItemView.extend({ model: new Models.Ca
我的 View 结构从布局移动到 ItemView,如下所示 Layout -> CollectionView -> ItemView。在我的布局 View 中,我根据某些条件添加了 onShow 区
我正在使用 Marionette/Backbone 开发一个应用程序。该应用程序需要通过 AJAX 调用上传文件(使其正常工作)。我想向用户提供反馈,告知他们何时能够选择上传的文件并继续修改它。当我有
我正在尝试从 RecyclerView 中检索所有复选框以取消选中它们。但是,显示了此错误。下面是LogCat指向的类。 java.lang.IllegalArgumentException: ite
这是我的 ItemView 的代码片段: class List.GridRow extends Backbone.Marionette.ItemView tagName: 'tr' trigg
我第一次玩 Marionette 。重新呈现 ItemView 后,它们的事件未触发。简单示例: App = new Marionette.Application; App.addRegions({
我正在尝试使用 onClose 事件在删除 View 之前清理它;尽管由于某种原因它永远不会被调用。我尝试过调用region.empty、region.reset,在该区域中显示一个新 View ,甚
我想从 Marionette.ItemView 访问 app.vent。 也许可以选择将参数 (app.vent) 从 Marionette.CompositeView 传递到 Marionette.
我正在尝试延迟加载 Marionette ItemView 的模板,但事情没有按我预期的方式工作。根据有关如何重写 getTemplate 方法的一些提示,我执行了以下操作: getTemplate:
我试图在 Marionette itemview (List.SendQuestion) 中触发一个事件,但是,我无法在 Controller 中注册触发器(如下所示) 本质上,在单击“a.send”
我目前有一个复合 View ,我希望每个 ItemView 都根据其索引进行呈现。 例如,我想向每三个 ItemView 添加一个类。 我倾向于的解决方案是更改 appendHtml() 以每三次向
我有一个 ItemView,我在其中使用了 clearSearch() 函数。我需要在另一个 ItemView 中调用相同的函数,所以为了让它保持干爽,我尝试调用 clearSearch(),但没有成
我正在尝试创建一个 RecyclerView,它带有垂直列表,可以捕捉到第一个项目。为了解决这个问题,我将以下 SnapHelper 类添加到 RecyclerView 中。 public class
我是一名优秀的程序员,十分优秀!