Recyclerview中的Kotlin意图onclick。 holder.title.context上的错误

问题描述 投票:0回答:1

我试图让我的recyclerview卡返回到主活动中,并单击一些传递的值。我尝试按照this答案在我的recyclerview中的项目上获取s​​etOnClickListener,但仍收到错误。

package com.example.colorpicker2finalattempt

import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.core.content.ContextCompat.startActivity
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.recycler_recall_list.view.*

class ColorAdapter(private val colorList: List<Color>): RecyclerView.Adapter<ColorAdapter.ColorViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ColorViewHolder {
        val itemView = LayoutInflater.from(parent.context).inflate(R.layout.recycler_recall_list, parent, false)

        return ColorViewHolder(itemView)

    }

    override fun onBindViewHolder(holder: ColorViewHolder, position: Int) {
        val currentItem = colorList[position]

        holder.previewView.text = currentItem.colorPreview
        holder.nameView.text = currentItem.colorName
        holder.redView.text = currentItem.redValue.toString()
        holder.greenView.text = currentItem.greenValue.toString()
        holder.blueView.text = currentItem.blueValue.toString()

       holder.itemView.setOnClickListener {
            val context = holder.title.context
            val intent: Intent = Intent(context, MainActivity::class.java)
            intent.putExtra("testingRItem", currentItem.redValue.toString())
            intent.putExtra("testingGItem", currentItem.greenValue.toString())
            intent.putExtra("testingBItem", currentItem.blueValue.toString())
            context.startActivity(intent)
        }
    }

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

    class ColorViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        val previewView: TextView = itemView.tv_colorpreview
        val nameView: TextView = itemView.tv_colorname
        val redView: TextView = itemView.tv_redvalue
        val greenView: TextView = itemView.tv_greenvalue
        val blueView: TextView = itemView.tv_bluevalue
    }

}

我收到标题的参考文献,该如何解决?

enter image description here

kotlin android-recyclerview recycler-adapter
1个回答
1
投票

在ColorViewHolder中定义标题

    class ColorViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
     val title: TextView = itemView.tv_ title// your textview id

      }
© www.soinside.com 2019 - 2024. All rights reserved.