💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در آذرماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ معین سعادتمند
null بودن Interface
جامعه جاوا (اندروید) ایجاد شده در ۲۶ اسفند ۱۳۹۹

سلام زمانی که رو ایتم کلیک میشه و می‌خوام محصول رو به 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)
    }
}

سلام وقت بخیر

 

پروژه رو ارسال بفرمایید .

یا جزییات بیشتری از کارهایی که کردید و اروری که برخورد کردید بگید.

پوریا شفیعی ۲۷ اسفند ۱۳۹۹، ۱۰:۳۱

لینک گوگل درایو

https://drive.google.com/file/d/1GEJIZghbKRVyLNjJBh_O8yh4_pAdLQOz/view?usp=sharing

مشکلو بخوام دقیق بگم وقتی شما روی محصول داخل فرگمنت اصلی کلیک میکنی با استفاده از اینترفیسه داخل اداپتر لیست محصولات محصول رو به فرگمنت اصلی ارسال میکنی. مشکل اینجاس که اینترفیس داخل اداپتر null هستش و متود onProductClick کال نمیشه که بخواد محصولو بفرسته علت null بودن اینترفیس چیه؟؟؟؟

داکیومنت‌های کاتلینو داشتم میخوندم بخش مربوط به اینترفیسو که مثال زده بود متود‌ها هم نام میتونن باعث بروز خطا بشن من دو ردیف لیست محصولات دارم لیست محصولات factory هستش من دوتا اداپتر جدا ساختم با اینترفیس‌های نام متفاوت درست نشد (ربطی نداشت شاید ولی امتحان کردم) کلا یه لیستو پاک کردم بازم درست نشد.

معین سعادتمند ۲۷ اسفند ۱۳۹۹، ۱۷:۲۶

اینم اروری که رخ میده 

    java.lang.NullPointerException
        at com.example.nikestore.feature.homeFragment.ProductListAdapter$ViewHolder$bindProduct$1.onClick(ProductListAdapter.kt:43)
        at android.view.View.performClick(View.java:5637)
        at android.view.View$PerformClick.run(View.java:22429)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
معین سعادتمند ۲۸ اسفند ۱۳۹۹، ۰۹:۰۹

سلام معین جان

امیدوارم حالت خیلی خوب باشه

 

بهترین پیشنهادی که میتونم بدم اینه که فایل پروژه‌ای که استاد قرار دادند رو دانلود کنید و inject کردن آداپتر رو از اونجا بررسی کنید

 

سال جدید رو پیشاپیش تبریک میگم

با آرزوی موفقیت و سلامتی و خوشحالی

Hamidreza Karimi ۲۹ اسفند ۱۳۹۹، ۱۹:۱۹