以下功能在卡片视图中均无错误

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

我想在我的代码中使用意图

我使用cardview然后想移到另一个视图,

我收到错误“以下功能均无...”

class ListResep(val listResep:ArrayList):RecyclerView.Adapter(){

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CardViewViewHolder {
    val view: View = LayoutInflater.from(parent.context).inflate(R.layout.list_resep, parent, false)
    return CardViewViewHolder(view)
}

override fun onBindViewHolder(holder: CardViewViewHolder, position: Int) {
    val resep = listResep[position]
    Glide.with(holder.itemView.context)
        .load(resep.photo)
        .apply(RequestOptions().override(600, 400))
        .into(holder.imgPhoto)
    holder.tvName.text = resep.name
    holder.tvDetail.text = resep.detail

    holder.btnShare.setOnClickListener { Toast.makeText(holder.itemView.context, "Share " + listResep[holder.adapterPosition].name, Toast.LENGTH_SHORT).show()
    }
    holder.itemView.setOnClickListener {
        val intent = Intent(context, DetailResep::class.java)
        startActivity(intent)
    }
}

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

inner class CardViewViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
    var imgPhoto: ImageView = itemView.findViewById(R.id.img_item_photo)
    var tvName: TextView = itemView.findViewById(R.id.tv_item_name)
    var tvDetail: TextView = itemView.findViewById(R.id.tv_item_detail)
    var btnFavorite: Button = itemView.findViewById(R.id.btn_set_favorite)
    var btnShare: Button = itemView.findViewById(R.id.btn_set_share)
    var btnUnFavorite: TextView = itemView.findViewById(R.id.btn_unset_favorite)
}
android kotlin android-intent android-cardview
1个回答
0
投票

在适配器内创建私有字段上下文,从构造函数传递它,或从onCreateViewHolder分配它,然后从onBindViewHolder对其进行评估。

class MyAdapter(private val context: Context)

or


private lateinit var context: Context

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
   context = parent.context
   ...
}

然后您的onBindViewHolder中的必须是:

holder.itemView.setOnClickListener { 
    val intent = Intent(context, DetailResep::class.java)
    context.startActivity(intent)
}
© www.soinside.com 2019 - 2024. All rights reserved.