【问题标题】:Kotlin intent onclick from recyclerview. Error on holder.title.context来自 recyclerview 的 Kotlin 意图 onclick。 holder.title.context 上的错误
【发布时间】:2020-05-15 20:48:37
【问题描述】:

我试图让我的 recyclerview 卡在单击后返回带有一些传递值的主活动。我已尝试按照this 的回答在我的 recyclerview 中的项目上获取 setOnClickListener,但仍然收到错误。

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
    }

}

我收到一个未解决的标题参考,我该如何解决?

【问题讨论】:

  • 在 ColorViewHolder 中声明标题的位置?
  • 我应该在哪里申报以及如何申报?

标签: kotlin android-recyclerview


【解决方案1】:

在 ColorViewHolder 中定义标题

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

      }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 2021-09-15
    • 2018-08-30
    • 2019-05-24
    • 2015-08-13
    相关资源
    最近更新 更多