دلیل استفاده از اینترفیس در ریسایکلر ویو

پرسیده شده
فعالیت 1278 روز پیش
دیده شده 704 بار
1

سلام.وقت بخیر.چرا از interface استفاده کردیم ؟
 

فایل پیوست

سجاد افتخاری
سجاد افتخاری

8 آبان 99

2
حذف شده

سلام و درود

یک مثال بزنم شما وقتی میخوای برای یک باتن onClickListener ست کنی در اصل داری یک اینترفیس ست میکنی ، اگه روش(onClickListener پارامتر ورودیش) کنترل کلیک کنی وارد کلاس ویو میشی و اینترفیسش میبینی که در توضیحاتش نوشته وقتی روی اون ویو که در مثال ما یک باتن است کلیک بشه این متد فراخوانی میشه ولی ما که نمی خواهیم در کلاس ویو عملیاتی که کلیک کردن روی اون باتن قرار انجام بشه را پیاده سازی کنیم(چون قراره نمونه ای از این کلاس تحت عنوان یک باتن در اکتیوتی ساخته بشه) ، میخواهیم داخل اون MainActivity که باتن را فایند کردیم عملیات کلیک را پیاده سازی کنیم واسه همین از اینترفیس استفاده میکنیم که میتونیم با استفاده از اینترفیس ، متدش در کلاس View فقط تعریف کنیم و پیاده سازیش(implement) جایی که میخواهیم ،انجام میدیم و به این صورته که در اصل باید کلاس MainActivty را روبروش بنویسیم implemen OnclickListener بعد زیرش قرمز میشه که میگه من متدی یا متدهایی دارم که باید پیاده سازی بشه ،پیاده سازی که انجام دادیم یک متد انتهای اکتیویتی پیاده سازی میشه که قراره عملیاتی که روی ویو مورد نظری که اون اینترفیس را روش ست میشه را اجرا کنه و بعد تنها کاری که میمونه انجام بدیم این است که بگیم این ویو چه ویویی است ، واسه همین روی باتن مورد نظر setOclick را مینویسیم بعد به عنوان پارامتر ورودی کلیک واژه this را میدیم که اشاره میکنه به خود اکتیوتی که این اینترفیس را پیاده سازی کرده ولی ما برای ساده تر شدن کار (که اون implement ننویسیم و ... )یک ایننر کلاس از ویو به عنوان پارامتر ورودی بهش میدیم که خودش متد را در انجا پیاده سازی میکنه

الان در اینجا در اداپتر هم به همین شکل است ما اینترفیس در اداپتر فقط متدش را تعریف میکنیم بعد روی ویویی که مد نظرمون است ست میکنیم ولی پیاده سازیش را میخواهیم  داخل اکتیوتی انجام بدیم چون mainAcitivty که الان تصمیم گیرنده هست  واسه همین اونجا پیاده سازیش میکنیم 

خلاصش این که با این کار جایی که اینترفیس پیاده سازی شده ، گوش به زنگه تا وقتی روی اون ویو کلیک شد عملیات داخلش اجرا بشه 

و این اینترفیس علاوه بر اینکه یک اطلاع دهنده به کلیک شدن روی اون ویو است میتونه اطلاعاتی هم تحت پارامتر های ورودیش به اکتیوتی منتقل کنه

 

فایل پیوست

محمود نیک زاد

توسط

محمود نیک زاد

8 آبان 99

0
حذف شده

سلام و احترام 

برای انتقال دیتا ها از Adapter به Activity  از interface استفاده کردیم

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

8 آبان 99

حذف شده
از کلاس نمیشد استفاده کرد مگه ؟
سجاد افتخاری

8 آبان 99

حذف شده
میتونستیم از setter , getter هم استفاده کنیم ولی راه جالبی نبود برای این موارد بهتره از اینترفیس استفاده کنیم .(در اینده با روش های دیگری اشنا خواهید شد)
پوریا شفیعی

8 آبان 99

حذف شده
هنوز متوجه نشدم چرا از اینترفیس استفاده کردیم.اگه میشه یکم بیشتر توضیح بدین
سجاد افتخاری

8 آبان 99

حذف شده
یه سوال کمی چالشی : بنظر شما اگر در این مثال از اینترفیس استفاده نمیکردیم با چه روشی میتوانستیم اطلاعات رو منتقل کنیم ؟اگر پاسخ شما کلاس هست پیشنهاد میکنم ابتدا امتحان کنید که ببینید ایا میشه یا خیر سپس از روش setter , getter که در سر فصل جاوا اموزش داده شد برای انتقال اطلاعات استفاده کنید خواهید دید با این روش هم انتقال دیتا کاملا انجام میشه ولی استفاده از اینترفیس کد رو خوانا تر میکنه برای همین در اینجا از اینترفیس استفاده کردیم
پوریا شفیعی

8 آبان 99