💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Pouya Rezaei
implement interface in fragment
سعید شاهینی حل شده توسط سعید شاهینی

سلام استاد خسته نباشید و وقتتون بخیر.

دگ کم کم داریم به عید هم نزدیک میشیم و درسته ک تو شرایط سختی هستیم ولی خب بازم عیده پس عیدتون مبارک پیشاپیش همگی:))

استاد من یه دیالوگ فرگمنت داخل فرگمنت ساختم و با استفاده از اینترفیس از "دیالوگ فرگمنت" دیتا رو برگردوندم به فرگمنت ولی مشکلی که پیش میاد و اپ کرش میکنه فک کنم از اینه که فرگمنت Context رو extend نکرده و من وقتی داخل متد onAttach داخل "دیالوگ فرگمنت" اینترفیس رو کست کردم به فرگمنت هیچ کانتکسی دریافت نمیکنه و موقع اجرا وقتی "دیالوگ فرگمنت" رو میخوام باز کنم فورس کلوز میده.

اروری هم که دریافت میکنم اینه استاد:

 java.lang.ClassCastException: com.example.MyApplication.MainActivity cannot be cast to com.example.MyApplication.ActivityRateDialog$ActivityRateDialogEventListener

 

چطور میشه این مشکل رو برطرف کرد؟

سلام وقت بخیر، اون روش cast کردن context اکتیویتی به interface که گفتم فقط زمانی جواب می‌ده که بخواهید اطلاعات رو از دیالوگ به اکتیویتی پاس بدید. 

برای مثال شما که فرگمنت هست، باید یک Setter برای اینترفیستون داخل کلاس دیالوگ ایجاد کنید و از اون setter برای implement کردن اینترفیس استفاده کنید

بهترین پاسخ
سعید شاهینی ۲۱ اسفند ۱۳۹۸، ۱۲:۲۵