【问题标题】:Recyclerview override issue in onBindViewHolder , Not overidingonBindViewHolder 中的 Recyclerview 覆盖问题,不覆盖
【发布时间】:2021-12-28 13:29:03
【问题描述】:

当我在其中添加 ViewHolder 类时,覆盖函数 onBindViewHolder 不会被覆盖。 当我将 viewHolder 类放在它之外时。它不工作。

在我的代码下面-

class data_custom_adapter(private val context: Context, private val datalist : ArrayList<Display_data>) : RecyclerView.Adapter<CustomAdapter.ViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomAdapter.ViewHolder {
        val v = LayoutInflater.from(parent.context).inflate(R.layout.display_data_card, parent, false)
        return CustomAdapter.ViewHolder(v)
    }


    //Issue occur here -- it is not overriding when I add ViewHolder class
    override fun onBindViewHolder(holder: data_custom_adapter.ViewHolder, position: Int) {
        holder.bindItems(context,datalist[position])
    }

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

    //the class is holding the list view
    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {


        private val datalist_data = itemView.findViewById(R.id.displayxmldata) as TextView


        fun bindItems(context: Context, datashow : Display_data) {
            datalist_data.text = datashow.appdata
        }

    }

}

各位大佬帮忙看看这个问题。

【问题讨论】:

    标签: android kotlin android-recyclerview overriding


    【解决方案1】:

    ViewHolder 必须与您在第一行中指定的类匹配。所以在

    class data_custom_adapter(private val context: Context, private val datalist : ArrayList<Display_data>) : RecyclerView.Adapter<CustomAdapter.ViewHolder>() {
    

    CustomAdapter.ViewHolder。将其更改为您的data_custom_adapter.ViewHolder,它应该可以工作。很喜欢

    class data_custom_adapter(private val context: Context, private val datalist : ArrayList<Display_data>) : RecyclerView.Adapter<data_custom_adapter.ViewHolder>() {
    

    这也需要在 onCreateViewHolder 函数中进行更改

    【讨论】:

      【解决方案2】:

      我希望这会奏效。

      class data_custom_adapter(
          private val context: Context,
          private val datalist : ArrayList<Display_data>) : RecyclerView.Adapter<data_custom_adapter.ViewHolder>() {
      
          override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
              val v = LayoutInflater.from(parent.context).inflate(R.layout.display_data_card, parent, false)
              return data_custom_adapter.ViewHolder(v)
          }
      
          override fun onBindViewHolder(holder: ViewHolder, position: Int) {
              holder.bindItems(context,datalist[position])
          }
      
          override fun getItemCount(): Int {
              return datalist.size
          }
      
          //the class is holding the list view
          class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
      
      
              private val datalist_data = itemView.findViewById(R.id.displayxmldata) as TextView
              
              fun bindItems(context: Context, datashow : Display_data) {
                  datalist_data.text = datashow.appdata
              }
      
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-23
        • 2023-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多