如何访问回收站视图中的按钮?

How to I access button inside a recycler view?

这是我的 RecyclerView Adaper

class RecyclerAdapter(private val recyclerList: List): RecyclerView.Adapter(){

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

    return mainRecyclerViewHolder(itemView)
}

override fun getItemCount() = recyclerList.size

override fun onBindViewHolder(holder: mainRecyclerViewHolder, position: Int) {

    val currentItem = recyclerList[position]
    holder.imageView.setImageResource(currentItem.imageResource)
    holder.textView.text = currentItem.recyclerCardText


}

class mainRecyclerViewHolder(itemView: View): RecyclerView.ViewHolder(itemView){

    val imageView: ImageView = itemView.rec_image
    val textView: TextView = itemView.text_view_1




}

}

这是我的数据class

数据class RecyclerItemMain(val imageResource: Int, val recyclerCardText: String, val button: Button)

像这样:

override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {

        holder.yourButton.setOnClickListener { v ->

            // Here your start your other activity or navigate to another fragment
        }
    }

请记住,如果您打算根据按钮将用户发送到不同的活动,则必须创建一个 when 表达式,它将根据中的另一个值将用户发送到 activity recyclerItem,例如项目的文本,在您的情况下 currentItem.recyclerCardText

这是重新组织的完整适配器:

class RecyclerAdapter(recyclerList: List<CategorySectionIcon>) :
    RecyclerView.Adapter<YourAdapter.CustomViewHolder>() {

    private var recyclerList: List<CategorySectionIcon>? = recyclerList


    inner class CustomViewHolder(
        //Get a reference to the Views in our layout//

        val myView: View
    ) : RecyclerView.ViewHolder(myView) {

        var textView: TextView = myView.findViewById(R.id.your_text)
        var imageView: ImageView = myView.findViewById(R.id.your_image)
        var yourButton: Button = myView.findViewById(R.id.iv_category_imagen_icon)

    }

    override//Construct a RecyclerView.ViewHolder//
    fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {
        val layoutInflater = LayoutInflater.from(parent.context)
        val itemView =
            layoutInflater.inflate(R.layout.quiz_item_recycler_view, parent, false)
        return CustomViewHolder(itemView)
    }

    override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {

        holder.textView.text = recyclerList!![position].recyclerCardText
        holder.imageView.setImageResource(recyclerList!![position].image)

        holder.yourButton.setOnClickListener { v ->

            // Here your start your other activity or navigate to another fragment
        }
    }

    //Calculate the item count for the RecylerView//
    override fun getItemCount(): Int {
        return recyclerList!!.size
    }
}