همون طور که در قسمت  قبل مشاهده کردید یکی از خاصیت های مروبط به ویوهایی مثل Button ،خاصیت onClick هست.ما به این خاصیت نام یک متد موجود در اکتیوتی رو انتساب میدیم که باعث میشه وقتی کاربر روی Button  کلیک کرد ،متد مورد نظرش از توی اکتیوتی فراخوانی و اجرا بشه.
روش نامبرده شده استفاده از خاصیت onClick بود که در xml بکار برده میشد (برای مطالعه این آموزش کلیک کنید).
حالا میخوایم همین کار رو با برنامه نویسی و نوشتن کد در اکتیویتی انجام بدیم .روش کار استفاده از متد setOnclickListener هست که در این بخش میخواهیم به معرفی اون بردازیم.

فرض کنیددر اپلیکیشنمون یک Button قرار دادیم که میخوایم وقتی کاربر روش کلیک کرد یک سری کدها درون اکتیوتی فراخوانی بشه .برای این کار کدهای مورد نظرمون رو درون متد setOnclickListener مینویسیم .با ذکر یک مثال نحوه استفاده از متد setOnclickListener رو فراخواهیم گرفت .

 

یک پروژه جدید بسازید
نام اپلیکیشن : OnclickListener
نام دامین اپلیکیشن :apk.manoandroid.com
سطح API اپلیکیشن : ۱۵
نوع اکتیوتی : Empty Activity
نام اکتیوتی : پیشفرض (MainActivity)
نام لیوت : پیش فرض (activity_main)

کدهای لیوت خود رو پاک کنید و کدهای زیر رو جایگزین اونا کنید.

همان طور که مشاهد می کنید در خطوط ۱۲ تا ۲۰ یک Button رو تعریف کردیم.(تصویر زیر)

کدهای اکتیوتی خود رو پاک کنید و کدهای زیر رو جایگزین اونا کنید.

توضیحات کدهای بالا :
خط ۱۶: در این خط به وسیله دستور findViewById به ویو دکمه موجود لیوت اشاره و اون رو در اکتیویتی قابل دسترس کردیم.
خط ۱۷ تا ۲۲ (بغیر از خط ۲۰) : این خطوط مربوط به تعریف رویداد کلیک برای دکمه می باشد .
خط ۲۰ :  در صورت اجرا شدن پیامی رو مشابه تصویر زیر به ما نشان میدهد.(به وسیله Toast)
پس با هر بار کلیک کردن روی دکمه باید خط ۲۰ ام اجرا بشه.(که باعث نماش پیام روی دکمه کلیک شده است میشه)

نکته :
برای نوشتن خاصیت OnclickListener نیاز نیست تمام کدهاش رو حفظ و دستی بنویسید.اندروید استادیو خودش کمکتون میکنه و کدها رو کامل میکنه.به تصویر زیر دقت کنید بنده اول کدها رو نوشته و با کمک اندروید استادیو بقیه کدها رو تولید می کنم).

  • شما می تونید کدهای دلخواهتون رو هر تعداد خط که باشند به جای خط ۲۰ ام (یعنی دستور toast قرار بدید تا با کلیک شدن دکمه توسط کاربر اون کدها اجرا بشن)

امیدوارم که از این قسمت رو پسندیده باشید.
موفق پیروز و سربلند باشید