سلام زمانی که رو ایتم کلیک میشه و میخوام محصول رو به MainFragment بفرستم اینترفیس ناله و ارسال نمیشه اگه نیازه پروژرو اپلود کنم چون بخش بخش پروژرو نوشتم و مستقیم پروژه ای که استاد شاهینی قرار دادنو باز نکردم
class ProductListAdapter(val imageLoadingService: ImageLoadingService) :
RecyclerView.Adapter<ProductListAdapter.ViewHolder>() {
var onProductClickListener: OnProductClickListener?=null
var products = ArrayList<Product>()
set(value) {
field = value
notifyDataSetChanged()
}
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val productIv: NikeImageView = itemView.findViewById(R.id.productIv)
val titleTv: TextView = itemView.findViewById(R.id.productTitleTv)
val currentPriceTv: TextView = itemView.findViewById(R.id.currentPriceTv)
val previousPriceTv: TextView = itemView.findViewById(R.id.previousPriceTv)
fun bindProduct(product: Product) {
imageLoadingService.load(productIv, product.image)
titleTv.text = product.title
currentPriceTv.text = formatPrice(product.price)
previousPriceTv.text = formatPrice(product.previous_price)
previousPriceTv.paintFlags = Paint.STRIKE_THRU_TEXT_FLAG
itemView.implementSpringAnimationTrait()
itemView.setOnClickListener {
Timber.i(product.toString())
onProductClickListener?.onProductClick(product)
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(
LayoutInflater.from(parent.context).inflate(R.layout.item_product, parent, false)
)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) =
holder.bindProduct(products[position])
override fun getItemCount(): Int = products.size
interface OnProductClickListener {
fun onProductClick(product: Product)
}
}