gpt4 book ai didi

android - 无法访问持有人中的 View

转载 作者:行者123 更新时间:2023-11-29 23:59:10 24 4
gpt4 key购买 nike

我正在尝试创建 RecyclerView 适配器并遵循 this文档。

private class Adapter(private val list: List<HashMap<String, Any>>, private val ctx: Context) : RecyclerView.Adapter<Adapter.ViewHolder>() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Adapter.ViewHolder {
var mTextView: TextView

return ViewHolder(ctx.UI {
relativeLayout {
mTextView = textView("1 + 1 = 2")
}
}.view)
}

override fun getItemCount() = list.size

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.mTextView.text = "1 + 1 = 3" // Should work?
}

class ViewHolder(view: View) : RecyclerView.ViewHolder(view)
}

如何在 onBindViewHolder 中访问 mTextView

最佳答案

如果您正在使用 kotlin 扩展并且有一个带有 id mTextView 的 TextView ,那么它应该是:

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.itemView.mTextView.text = "1 + 1 = 3" // Should work?
}

您还可以在 ViewHolder 中定义变量并直接使用它们,这是性能方面的最佳方式,因为它不会强制不必要地调用 findviewbyid。 :

class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val myTextView = itemView.mTextView
}

然后像这样访问它:

 holder.myTextView.text = "some text"

关于android - 无法访问持有人中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50109546/

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