我正在实现nestedRecyclerView]上的onClick,onClick在子recyclerView中,而我正在RecyclerView的onBindViewHolder中实现它。但是,我想将其传输到一个片段,以便在单击按钮后可以访问其viewmodel。
这就是我的回收站视图
class ProductAdapter(private val context: Context, private val productModel: List<Product>) :
RecyclerView.Adapter<ProductAdapter.ProductView>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ProductView {
val view = LayoutInflater.from(parent.context).inflate(R.layout.product_item, parent, false)
return ProductView(view, productModel)
}
override fun getItemCount(): Int {
return productModel.size
}
override fun onBindViewHolder(holder: ProductView, position: Int) {
var product = productModel[position]
holder.product = listOf(product)
holder.setClick(object : ItemClickListener {
override fun onItemClickListener(view: View, position: Int) {
Toast.makeText(context, "" + productModel[position].productName, Toast.LENGTH_SHORT)
.show()
}
})
}
class ProductView(itemView: View, var product: List<Product>) :
RecyclerView.ViewHolder(itemView), View.OnClickListener {
private val addToCart: ImageView = itemView.findViewById(R.id.addToCart)
lateinit var listener: ItemClickListener
fun setClick(listener: ItemClickListener) {
this.listener = listener
}
init {
addToCart.setOnClickListener(this)
}
override fun onClick(v: View?) {
listener.onItemClickListener(v!!, adapterPosition)
}
}
interface ItemClickListener {
fun onItemClickListener(view: View, position: Int)
}
}
我正在nestedRecyclerView上实现onClick,onClick在子recyclerView中,而我正在RecyclerView的onBindViewHolder中实现。但是,我想转移它...
移动您的setClick()
函数并在适配器