Reputation: 7
i want to use intent in my code
i use cardview then want to move to another view ,
i got error "none of the following function ..."
class ListResep(val listResep: ArrayList<Resep>) : RecyclerView.Adapter<ListResep.CardViewViewHolder>() {
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)
}
Upvotes: 1
Views: 57
Reputation: 134
Create private field Context inside the Adapter, pass it from constructor.
class ListResep(private val context: Context, val listResep: ArrayList) : RecyclerView.Adapter()
Then in your onBindViewHolder must be:
holder.itemView.setOnClickListener {
...
Glide.with(context)
...
val intent = Intent(context, DetailResep::class.java)
context.startActivity(intent)
}
Upvotes: 1