دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱
  • آبان

جلسه ۱۴ : مدیریت رویداد در اندروید

  • دسته‌بندی‌ها :
جلسه ۱۴ : مدیریت رویداد در اندروید
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش برنامه نویسی اندروید را دنبال می کنند.  Events(رویدادها) یک راه مفید برای جمع آوری داده ها در مورد تعامل کاربر با کنترل های تعاملی برنامه ها است. مانند فشار دادن دکمه ها و یا لمس صفحه نمایش و… فریم ورک Android یک صف از رویداد را به عنوان اولین صف، در مرحله اول (FIFO) نگه می دارد. شما می توانید این رویدادها را در برنامه خود ضبط کنید و اقدامات مناسب را در هر شرایطی انجام دهید. برای آشنایی بیشتر با چگونگی مدیریت رویداد در اندروید در ادامه ی مباحث این بخش با ما همراه باشید.

      مدیریت رویداد در اندروید

      در ادامه ی مباحث ما شما را با انواع رویدادها و چگونگی مدیریت رویداد در اندروید آشنا می کنیم.

      سه مفهوم کلی مربوط به مدیریت رویداد در Android وجود دارد:

      • Event Listeners :

      یک رویداد listener یک رابط در کلاس View است که شامل یک متد فراخوانی تک است.

      این متد ها توسط فریم ورک اندروید فرخوانی می شود.

      • Event Listeners Registration:

      Event Registration فرآیندی است که توسط یک Event Handler با یک Listener رویداد ثبت می شود، به طوریکه Handler رویداد Event Eventer را فراخوانی می کند.

      • Event Handlers :

      هنگامی که یک رویداد اتفاق می افتد listener رویداد، Event Handlers را فراخوانی می کند، و در واقع متد است که رویداد را مدیریت می کند.

      لیست رویدادهای Event Listener و Event Handler

      در زیر یک لیست از Event Listener و Event Handler های اندروید را ارائه کرده ایم:

      Event HandlerEvent Listener و توضیحات
      onClick()()OnClickListener

      این متد زمانی فرخوانی می شود که کاربر روی هر ویجت نظیر button, text, image و … کلیک کرده یا آن را لمس کند.

      شما در واقع از متد () onClick برای دستکاری رویداد استفاده می کنید.

       

      onLongClick()()OnLongClickListener

      این متد زمانی فراخوانی می شود که کاربر دو عمل کلیک یا لمس روی button, text, image و … را انجام دهد

      که برای یک یا چند ثانیه طول می کشد،برای دستکاری رویداد نیز از متد () onLongClick استفاده می شود.

       

      onFocusChange()()OnFocusChangeListener

      این متد زمانی فراخوانی می شود که یک کنترل از حالت انتخاب (focus) خارج می شود.

      برای دستکاری این رویداد از متد ()onFocusChange استفاده می شود.

       

      onKey()()OnFocusChangeListener

      این زمانی فراخوانی می شود که کاربر یک آیتم را انتخاب کرده و یک دکمه ی سخت افزاری از دستگاه را فشار می دهد.

      و برای دستکاری آن نیز از متد ()onKey استفاده می شود.

       

      onTouch()()OnTouchListener

      این متد زمانی فرخوانی می شود که کاربر یک کلید را از دستگاه فشار داده یا صفحه را لمس کند.

      برای مدیریت آن از متد  ()onTouch  استفاده می شود.

       

      onMenuItemClick()()OnMenuItemClickListener

      این زمانی فرخوانی خواهد شد که کاربر یکی از آیتم های یک منو را انتخاب کند.

      برای مدیریت این نیز از متد ()onMenuItemClick استفاده می شود.

       

      onCreateContextMenu()()onCreateContextMenuItemListener

      این زمانی فرخوانی می شود که یک منوی context شروع به ایجاد شدن می کند.

      که این در نتیجه ی یک کلیک طولانی اتفاق می افتد.

      رویدادهای listener بیشتری به عنوان بخشی از کلاس View از جمله OnHoverListener، OnDragListener و … در دسترس است.

      Event Registration

      Event Registration فرآیندی است که توسط یک Event Handler  با یک Listener ثبت می شود،به طوری که Handler هنگام فراخوانی Event Eventer را فراخوانی می کند.

      راه حل های متفاوتی برای register کردن رویداد Listener وجود دارد که ما به بررسی ۳ مورد از آن ها می پردازیم.

      با استفاده از کلاس داخلی ناشناس

      کلاس Activity رابط Listener را اجرا می کند.

      با استفاده از فایل layout activity_main.xml که برای مشخص کردن رویداد handler استفاده می شود.

      در ادامه ی مباحث نمونه های مفصلی از هر سه سناریو ارائه خواهد شد:

      حالت Touch

      کاربران با استفاده از کلید های سخت افزاری یا دکمه ها یا لمس صفحه می توانند با دستگاه های خود ارتباط برقرار کنند.

      با لمس یا ضربه زدن روی صفحه ی دستگاه حالت touch ایجاد می شود.

      سپس کاربر می تواند با لمس دکمه ی مجازی ، تصاویر و … در صفحه نمایش با آن ها ارتباط برقرار کرده و درخواست خود را انجام دهد.

      شما می توانید با فراخوانی متد ()isInTouchMode  از کلاس View حالت touch دستگاه را بررسی کنید.

      حالت Focus

      یک textbox یا سایر کنترل های رابط کاربری هنگامی که در حالت focus باشند یک نشانگر چشمک زن را نشان می دهند.

      این حالت نشان می دهد که کنترل مربوطه آماده ی دریافت ورودی از کاربر است.

      این حالت شامل دو متد کلی است:

      • ()isFocusable:

      این مقدار true (قابل focus است) یا  false (قابل focus نیست) را برمی گرداند.

      • ()isFocusableInTouchMode:

      این بررسی می کند که آیا view در حالت touch قابل focus است یا خیر.

      مثال : 

      متد ()onTouchEvent

      مثال : 

      مثال هایی از Event Handling

      Event Listener ها با استفاده از هر کلاس داخلی ناشناس ریجستر می شوند.

      در این مثال یک پیاده سازی ناشناس از یک listener را ایجاد می کنیم و اگر هر کلاس به یک کنترل واحد اعمال شود این مفید خواهد بود.

      در این رویکرد متدهای event handler می تواندبه داده های خصوصی یک Activity دسترسی داشته باشند، برای فراخوانی Activity نیازی به مرجع نیست.

      اما اگر بیش از یک کنترل را به یک handler اضافه کنید. باید کد مربوط به handler را cut کرده و در محل مربوطه pass کنید.

      در ادامه مراحل ساده ای چگونگی استفاده از کلاس Listener جداگانه را برای ثبت رویداد کلیک نشان می دهد.

      به طور مشابه شما می توانید Listener خود را برای هر نوع رویداد مورد نیاز اجرا کنید.

      مراحل

      توضیحات

      ۱مراحل ایجاد برنامه در اندروید استدیو را طبق بخش های قبلی دنبال کرده و نام پکیج را com.pvlearn.pvlearn.myapplication قرار بدهید.
      ۲در محتوای فایل  src / MainActivity.java رویدادهای listeners و handleers را برای دو دکمه تعریف کنید.
      ۳در محتوای فایل  res / layout / activity_main.xml نیز کنترل های UI Android را اضافه کنید.
      ۴string constants را بدون تغییر بگذارید.
      ۵برنامه را اجرا کنید تا شبیه ساز اندروید نتیجه را نمایش دهد.

      تغییرات محتوای فایل ها

      محتوای فایل src / com.example.myapplication / MainActivity.java بصورت زیر خواهد بود:

      مثال : 

      محتوای فایل res/layout/activity_main.xml نیز به صورت زیر خواهد بود:

      نکته :

      در اینجا abc لوگوی داخل برنامه را نشان می دهد.

      مثال : 

      تعریف ثابت ها

      در محتوای فایل res/values/strings.xml  دو ثابت جدید به صورت زیر تعریف کنید:

      مثال : 

      محتوای پیش فرض فایل AndroidManifest.xml بصورت زیر خواهد بود:

      مثال : 

      اجرای برنامه

      برای اجرای برنامه ی اندرویدی خود یکی از فایل های activity در برنامه ی خود کلیک کنید.

      سپس روی نماد  (Run) از نوار ابزار برای شروع اجرای برنامه کلیک کنید.

      اگر همه چیز بخوبی پیش برود شبیه ساز اندروید پنجره ی زیر را نمایش خواهد داد:

      مدیریت رویداد در اندروید

      مدیریت رویداد در اندروید

      سپس روی یکی از دو دکمه ای که در رابط کاربری ایجاد کرده ایم کلیک کنید تا مشاهده کنید اندازه ی متن Hello World تغییر می کند.

      این اتفاق به خاطر این است که متد click event handler با کلیک کردن فراخوانی می شود.

      کلام آخر

      رویدادها در هنگام تعامل کاربر با کنترل های رابط کاربری نظیر کلیک کردن ، لمس کردن و … اتفاق می افتد، با استفاده از مدیریت رویداد در اندروید می توانید برای هر یک از اقدامات کاربر با کنترل های صفحه نمایش یک فعالیت خاص را تعریف کنید، مباحث بخش بعد را به style ها و تم ها اختصاص می دهیم.

      QR:  جلسه ۱۴ : مدیریت رویداد در اندروید
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر