Ошибка ни одной из следующих функций Намерение в просмотре карты - PullRequest
1 голос
/ 30 апреля 2020

я хочу использовать намерение в моем коде

я использую cardview, затем хочу перейти к другому представлению,

я получил ошибку "нет следующих функций ..."

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)
    }

1 Ответ

1 голос
/ 30 апреля 2020

Создать приватное поле Context внутри Адаптера, передать его из конструктора.

class ListResep(private val context: Context, val listResep: ArrayList) : RecyclerView.Adapter()

Тогда в вашем onBindViewHolder должно быть:

holder.itemView.setOnClickListener { 
    ...
    Glide.with(context)
    ...

    val intent = Intent(context, DetailResep::class.java)
    context.startActivity(intent)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...