سلام خواهشا یکی راه حل این مشکلو به من بگه کاملا توضیح دادم پروژرو کامل قرار دادم ولی هیچ کسی حتی نظرم نمیده.
لینک تاپیک :
https://7learn.ac/community/null-%D8%A8%D9%88%D8%AF%D9%86-interface-uYew1
آقا معین عزیز
شما توی فرگمنت اصلی داخل onViewCreated این خط رو اضافه نکردی:
productListAdapterLatest.onProductClickListener = this
که باعث میشه اینترفیس کار نکنه. من روی پروژه شما اضافه کردم و جواب داد.
سلام معین جان وقت بخیر
من پروژه رو دانلود کردم ولی بخاطر کانکشنم و تفاوت در ورژن gradle مون بیلد نشد حتما بررسی میکنم و نتیجه براتون مینویسم .
سلام آقا معین وقت بخیر
تا اونجایی که من متوجه شدم شما توی فرگمنت اصلی بعد از کلیک روی محصول میخوای دوباره بیای به فرگمنت اصلی در حالی که بعد از کلیک روی محصول باید بری به صفحه detail محصول. خب طبیعتاً باید فایل viewModel صفحه detail رو بسازی و از طریق koin اون رو به همراه اینترفیس پاس بدی به صفحه detail. بنابراین باید داخل koin این خط رو اضافه کنی:
viewModel { (bundle: Bundle) -> ProductDetailViewModel(bundle, get()) }
امیدوارم منظورت رو درست متوجه شده باشم.
شما توی این قسمت داری محصول رو پاس میدی به اینترفیس
itemView.setOnClickListener {
onProductClickListener?.onProductClick(product)
}
که من لاگ گرفتم اطلاعات درست پاس داده میشه. منتها چون وقتی کلیک می کنی باید صفحه جزئیات محصول رو نمایش بده:
override fun onProductClick(product: Product) {
startActivity(Intent(requireContext(), ProductDetailActivity::class.java).apply {
putExtra(EXTRA_KEY_DATA, product)
})
}
و شما ویومدلی نداری که اطلاعات رو برای صفحه بفرسته و نمایش بده داره خطا میده. به نظر من شما مراحل رو درست رفتی فقط باید ادامه بدی و صفحه جزئیات محصول رو هم نمایش بدی اونوقت احتمالاً مشکلت حل میشه.
ببخشید اگه بین اساتید من سعی میکنم کمک کنم چوم خودم این قسمت رو انجام دادم و نتیجه گرفتم دارم میگم.
سلام معین عزیز وقت بخیر
سال نو مبارک
کماکان پروژه به علت متفاوت بودن ورژن gradle بیلد نشد.
بطور کل اشتباهاتی که در پروژه شما دیدم :
۱:نیازی به اینجکت کردن این موارد نبود
val productListAdapterPopular: ProductListAdapter by inject()
val productListAdapterLatest: ProductListAdapter by inject()
همین مشکل باعث میشد پروژه تغییر کند و روش پیاده سازی متفاوتی به خود بگیرد.
پیشنهاد من بهتون این هست جلسات مربوط به این قسمت رو مجدد ببینید و طبق جلسات پیاده سازی رو جلو ببرید
نکته ای که هست اگر لازم باشه مشکلات پروژه رو برطرف کنم احتمالا در آخر به سورس کدی که استاد در پیوست جلسه قرار دادند میرسیم.
پیشنهاد دومی هم که دارم ادامه سورس کد موجود در بخش پیوست جلو نرید اینطوری زیاد متوجه نوع پیاده سازی سازی پروژه نمیشید و براتون مشکل زا خواهد شد.
پس بطور کل مشکلات شما صفحه : HomeFragment
سلام سال نو شما هم مبارک
ممنون برای وقتی که گذاشتی پوریای عزیز
در مورد دوبار گرفتن نمونه از ProductListAdapter برای دو ردیف شدن لیست محصولات بود که حتی اگه حذفش کنی و یک ردیفش کنی یا براش یه اداپتر جدا بسازی با اینترفیس جداگانه و... همچنان مشکل پا برجاست.
اگر پروژه بیلد بشه و اجراش کنید متوجه مشکل میشید تا اینجای کار پروژه هیچ چیز پیچیده ای نداشته که بگم متوجه نشدم یا اشتباه پیش رفتم این مشکل یکم عجیبه تو پروژه اماده زمانی اداپتر نمونش ساخته میشه این قسمت اجرا میشه ولی تو اونی که خودم پیش بردم این اتفاق نمیوفته.
var onProductClickListener: OnProductClickListener? = null
ای دی تلگرام و شماره اگه لطف کنی یه پی ام بدی خیلی راحت تر میتونم نشون بدم مشکلو و کاملا توضیح بدم.
@moeinx_x
۰۹۳۵۷۱۱۴۱۰۳
الان پروژه اماده هستش میشه سوییچ کرد روش از مشکل گذشت ولی در اینده اینطور نیست.