همانطور که در قسمت قبلی خواندید، متوجه شدید که ما میتوانیم به راحتی یک دکمه در محیط اکلیپس ایجاد کنیم و به آن خاصیت هایی همچون رنگ، متن و… بدهیم. حالا میخواهیم بدانیم که چگونه میتوان بعد از کلیک کاربر بر روی آن دکمه یا تکست، رویدادی (Event) برای کاربر رخ دهد. برای مثال اگر شما بر روی دکمه ی Next کلیک کنید، به صفحه ی بعدی هدایت میشود. در این جلسه آموزش رایگان برنامه نویسی آندروید تکفارس، میخواهیم به شما آموزش دهیم که چگونه این Event ها را در برنامه نویسی آندروید و جاوا ایجاد کنید.
انواع رویداد ها در برنامه نویسی آندروید
Event Listeners: این دسته از رویدادها فقط زمانی عمل خواهند کرد که کاربر کاری را در صفحه انجام دهد. برای مثال روی دکمه ای کلیک کند و… .
Event Listeners Registration: این نوع رویداد پس از انچام عملی که کاربر به آن دستور میدهد، آن را ذخیره و نگه داری میکند.
Event Handlers: این عنصر در برنامه نویسی آندروید، کنترل کننده انواع Event هایی است که در برنامه نویسی آندروید به کار برده اید.
Event Listeners & Event Handlers
روش کنترل کننده رویداد | توضیحات Event Listener مربوطه |
---|---|
onClick() | OnClickListener():با استفاده از این رویداد پر کاربرد، میتوانید وقایع بعد از کلیک بر روی هر چیزی را، کنترل کنید. |
onLongClick() | OnLongClickListener():این رویداد مانند رویداد قبل عمل میکند، اما شما باید تعیین کنید که کاربر باید چندبار بر روی دکمه، عکس، متن مورد نظر شما کلیک کند، تا آن رویداد مربوطه رخ دهد. |
onFocusChange() | OnFocusChangeListener():زمانی که کاربر بر روی رویدادی کلیک میکند، آن چیزی که بر روی آن کلیک شده تغییر خواهد کرد. |
onKey() | OnFocusChangeListener():این همان کاربرد قبلی را دارد، اما کاربر اینبار باید بر روی یک کلید سخت افزاری بر روی گوشی اش کلیک کند. برای کار با این رویداد شما باید از onKey() استفاده کنید |
onTouch() | OnTouchListener():برای زمانی که کاربر روی دکمه ( سخت افزاری ) کلیک میکند یا از لمس آن دست میکشد، کاربرد همان OnFocusChangeListener() را دارد. |
onMenuItemClick() | OnMenuItemClickListener():این رویداد برای زمانی است که بر روی یکی از آیتم های منویی کلیک میکند. مثل کلیک کردن بر روی نام یکی از نام ها در لیست مخاطبین. |
onCreateContextMenu() | onCreateContextMenuItemListener():مشخص میکند که اگر کاربر لمس خود را بر روی آیتم منو نگه دارد، چه اتفاقی خواهد افتاد. |
شروع کار با رویداد ها
در آندروید ما بی نهایت رویداد داریم، ولی برای سهولت در فهم آموزش و گیج نشدن شما(!) ما تعدادی از پرکاربردترین های آنها را برای شما لیست کردیم.
ثبت کردن رویداد ها در آندروید راه های مختلفی دارد، اما من میخواهم ۳ راهکار اصلی را برای شما تشریح کنم:
- استفاده از یک کلاس داخلی ( نحوه ساخت کلاس را در جلسات بعد یاد خواهیم گرفت )
- پیاده سازی از روی Activity مربوط به User Interface
- با آدرس دادن یک id در فایل جاوا و استفاده از یک UI Control در برنامه نویسی جاوا ( پیشنهاد میشود. )
با سناریو های بالا شما میتوانید به یک شی بی جان، روح ببخشید. راه سوم به شدت پیشنهاد میشود.
Touch Mode
کاربران استفاده کننده از موبایل های آندرویدی میتوانند دکمه های مختلفی را لمس کنند. از دکمه پاور گرفته تا دکمه Home و Back. البته ناگفته نماند که این دکمه ها، تنها دکمه های سخت افزاری گوشی هستند و کاربران میتوانند با صفحه لمسی نیز به برنامه ی شما دستور دهند. شما با تابع TouchMode() میتوانید مشخص کنید که کاربر باید کدام دکمه یا شی را لمس کند.
یک سناریو که اگر کاربر بر روی دکمه شما کلیک نکند چه اتفاقی خواهد افتاد ( همان Event ):
رویداد Focus
برای تمرین رویداد های آندروید، بهترین روش، ساخت یک رویداد onFocus است. این اونت بسیار ساده است. این رویداد دو حالت مختلف دارد:
- isFocusable(): یک مقدار True یا False برای آن تعیین میشود. این رویداد زمانی عمل میکند که کاربر در حال مشاهده آن UI Controlای باشد که این رویداد به آن نسبت داده شده باشد.
- isFocusableInTouchMode(): این رویداد فوکوس زمانی عمل خواهد کرد که کاربر یک دکمه ی سخت افزاری را فشار دهد.
روش فعال کردن رویداد فوکوس در XML
این کد کوچک را در زیر کنترلی که میخواهید به آن نسبت دهید وارد کنید.
این کد به شما کمک خواهد کرد تا در هنگام بالا آمدن برنامه مثلا دکمه ای که به آن این رویداد را نسبت داده اید، به اصطلاح Highlight شود.
در قسمت بعد:
- انواع شرط ها در برنامه نویسی جاوا
- انواع متغییر ها در جاوا
- صورت کلی برنامه نویسی جاوا
نظرات
اقای قدمگاهی خسته نباشین …
من هرچه دنبال قسمت چهارم اموزش اندروید گشتم چیزی پیدا نکردم. آیا آموزش از سایت پاک شده ؟ میشه لطف کنین و لینکشو بزارین