رسیدگی به رویدادهای کاربر با کدهای فایل های لایوت
درس “مدیریت رویدادهای View در فایلهای Layout” به طور جامع به نحوه مدیریت رویدادهای تعاملی در فایلهای XML برنامههای اندرویدی میپردازد. این درس به معرفی روشهایی مانند استفاده از ویژگی android:onClick
برای تعریف مستقیم متدهای مرتبط با رویدادهای کلیک در فایل Layout میپردازد و توضیح میدهد چگونه این متدها در اکتیویتی مرتبط فراخوانی میشوند. همچنین، بهینهسازی فرآیند توسعه از طریق کتابخانهها و ابزارهای جانبی برای مدیریت رویدادها مورد بررسی قرار میگیرد. این آموزش با هدف ارائه یک رویکرد ساختیافته برای مدیریت رویدادها در لایه View طراحی شده و به توسعهدهندگان کمک میکند تا کدهای سادهتر، خواناتر و قابلمدیریتتری ایجاد کنند. مخاطبان با مشاهده این درس و ویدیوی آموزشی مرتبط، مهارت عملی در مدیریت رویدادها بهطور مستقیم در فایلهای Layout را به دست خواهند آورد.
هر کنترل بصری یا شیء در لایوت یک ویو هست، و این ویوها میتوانند منجر به یکسری رویدادها بشوند. شما میتوانید به صورت دستی رویدادهای مربوط به هر ویو رو تنظیم کنید، به دو صورت می توانید این تنظیمات رو اعمال کنید، یا با نوشتن کد در کلاس جاوا و فایل لایوت و یا به تنهایی با نوشتن کد در کلاس جاوا. در واقع به شما نشان میدهم وقتی یک رویدادی اتفاق میافتد چطوری متد مربوط به اون ساخته و فراخوانی میشود و اون متد چطوری در فایل لایوت ثبت میشود.
مثلاً، اینجا من با رویداد کلیک کار میکنم که وقتی کاربر یک دکمه رو لمس میکند چه اتفاقی میافتد.
همانطور که می بینید این دکمه برچسب Submit دارد و در این فایل لایوت content_main.xml تعریف شده.
و در نوار بالای برنامه اندروید استودیو می بینید که من در پروژهای به نام View Events کار میکنم.
میآیم پایین و اعلان مربوط به button رو پیدا میکنم و بعد یک ویژگی on Click به باتن اضافه میکنم.
و میگویم که وقتی این رویداد اتفاق افتاد، یک متد با نام button ClickHandler فراخونی بشود.
در واقع باید در فایل جاوا یک متد با نام button ClickHandler تعریف کنیم و با نوشتن هر دستور در اون متد؛ وقتی کاربر عمل کلیک روی این دکمه رو انجام داد اون دستورات موجود در متد button ClickHandler اجرا بشوند.
حالا دکمه Alt یا Option و Enter یا Return رو به ترتیب در محیط های ویندوز و مک فشار میدهم و قصدم این است که گزینه Create unClick event handler رو انتخاب کنم.
اگر پروژه من بیشتر از یک کلاس جاوا داشته باشد، همه کلاسهای جاوا قابل دسترسی رو اینجا میبینم. حالا که من فقط یک عدد کلاس جاوا دارم، و بالطبع فقط یک کلاس جاوا رو می بینم، پس فقط روی اوکی کلیک میکنم تا اون انتخاب بشود و بعد هم خواهید دید که این متد در کلاس main activity من ایجاد میشود. نام این متد همانی است که در فایل xml با button ClickHandler تعریف کردم و فقط یک آرگومان میخواهد که از نوع بازگشتی view هست. این ویو همان شیءای هست که رویداد کلیک روی آن انجام شده.
حالا در متد button ClickHandler، این کدهای موجود مربوط به پیام snack bar رو کپی میکنم و پیام You selected settings رو با You clicked the button عوض میکنم و از برنامه ران میگیرم.
وقتی برنامه روی دستگاه اجرا میشود، مثل قبل مقداری رو تایپ میکنم و دکمه submit رو میزنم و پیام You clicked the button رو میبینیم.
حالا در یک برنامه در دنیا واقعی، شما میخواهید که دادهای که کاربر در فرم وارد کرده رو بگیرید.
بنابراین یکبار دیگر به کنترل Edit Text با آیدی name Text که در فایل xml به آن دادم با فراخونی متد find ViewById رجوع میکنم.
مثل قبل برای اطمینان دادن به اندروید استودیو برای نوع بازگشتی مناسب این متد آنرا کست میکنم.
و بعد مقداری رو که کاربر تایپ کرده میگیرم و میگذارم در یک رشته یا string به نام name و بعد پیام خود را به Your name is و بعد هر چی که کاربر تایپ کرده تغییر میدهم و دوباره برنامه را اجرا میکنم.
و این هم نتیجه.
من موفق شدم دادهای که کاربر وارد کرده رو بگیرم و از آن استفاده کنم.
خب این یک روش ساده برای کنترل دستی یک رویداد بود.
بعنوان یک مرور سریع؛ باید از فایل لایوت شروع کنید، بعد کافی است نام رویدادتان را در قالب یک عنصر، با استفاده از تگهای زبان xml تایپ کنید؛ تا رویدادتان در مرحله اول ثبت بشود و یک مقدار به عنوان نام متد، در کلاس جاوا به آن میدهید تا اون متد در کلاس جاوا ایجاد بشود و نهایتاً از اینجا می توانید، به راحتی عملیاتی رو که میخواهید بعد از اون رویداد انجام بشود را؛ اضافه و پیاده سازی کنید.