【问题标题】:Cant resolve View Holder in RecyclerView无法解析 RecyclerView 中的视图持有者
【发布时间】:2019-10-03 12:22:00
【问题描述】:

我是 RecyclerView 的新手,我想实现这一点,但问题是我无法解决以下代码中的查看器引用,请帮帮我

class ViewAdapter : RecyclerView.Adapter<ViewAdapter.ViewHolder>(){
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewAdapter.ViewHolder {
        // return ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.slider, parent, false))
    // }
     }

     override fun getItemCount(): Int {
         TODO("not implemented") 
     }

     override fun onBindViewHolder(holder: ViewAdapter.ViewHolder, position: Int) {
         TODO("not implemented") 
     }


 }

【问题讨论】:

  • ViewHolder 是一个抽象类,你必须提供你自己的实现。
  • 如果您使用的是基于 IntelliJ 的 IDE,您可以在未解析的视图顶部按 alt + enter 并创建类。在这种情况下,这就是您需要做的。

标签: android kotlin android-recyclerview android-viewholder


【解决方案1】:

您需要在 ViewAdapter 类中创建一个类 ViewHolder

示例代码

class ViewAdapter : RecyclerView.Adapter<ViewAdapter.ViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewAdapter.ViewHolder {
        // return ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.slider, parent, false))
        // }
    }

    override fun getItemCount(): Int {
        TODO("not implemented")
    }

    override fun onBindViewHolder(holder: ViewAdapter.ViewHolder, position: Int) {
        TODO("not implemented")
    }

    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
    }
}

【讨论】:

    【解决方案2】:

    您还没有在 ViewAdapter 中定义 ViewHolder 类

    只需在 ViewAdapter 中定义 ViewHolder 类

    class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) {
    
    }
    

    【讨论】:

      【解决方案3】:

      ViewAdapter 是您正在创建的类,因此ViewAdapter.ViewHolder 是它的内部类。

      你需要创建这个内部类,比如:

      class ViewAdapter : RecyclerView.Adapter<ViewAdapter.ViewHolder>(){
      
         ...
      
         class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
              ...
         }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-04
        • 2015-01-13
        • 1970-01-01
        • 1970-01-01
        • 2020-01-06
        • 2022-01-11
        • 1970-01-01
        相关资源
        最近更新 更多