
public, להחזיר void ולקבל פרמטר מסוג View. השם חופשי, אבל מקובל לכתוב את ה-ID של הרכיב, קו תחתון, ושם האירוע, למשל onclick.onclick ובוחרים בו את הפונקציה. אחרי הקישור הפונקציה בקוד הופכת משחורה מאפורה, כי מישהו קורא לה.setText של ה-TextView. את השעה מקבלים מאובייקט SimpleDateFormat עם פורמט של שעה, דקה ושנייה, ומשתנה Date שמחזיק את הרגע הנוכחי, וקוראים ל-format.onclick של הלחצן השני. בקובץ ה-XML מעמידים את הסמן על השם, ובמקום שמופיעה המנורה לוחצים Alt+Enter, ו-Android Studio יוצר את הפונקציה במחלקה.MMM (שם החודש), dd (היום) ו-yyyy (השנה). את שם המשתנה משנים ל-currentDate.Alt+Enter יוצר את הפונקציה החסרה מתוך שם שנכתב ב-XML.Shift+F6 משנה שם של משתנה בכל המקומות שבהם הוא בשימוש.הטקסט המלא של הדקות הראשונות בהרצאה «Writing onClick Events» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שבנינו את העיצוב עבור האפליקציה שלנו ואחרי שבקוד הג'אווה איתרנו את הרכיבים הוויזואליים שאנחנו רוצים להתייחס אליהם ולשנות את ערכם בזמן הריצה אנחנו יכולים לגשת ולכתוב קוד שיתבצע כתגובה לאירועים כלשהם של המשתמש.
אז קודם כל נבין איך בעצם הולכים לעשות את זה. מה שקורה זה שהמשתמש מבצע איזושהי פעולה על רכיב ויזואלי. לדוגמה במקרה הזה לוחץ על הלחצן מה שהוא עושה הוא בעצם ביצע פעולה שנקראת קליק אנחנו רוצים לכתוב פונקציה במחלקה בג'אווה כך שברגע שהוא יבצע את אותו אירוע את אותו איבנט המערכת אוטומטית
תקרא לפונקציה שלנו כמובן הפונקציה צריכה להיות בעלת חתימה מאוד ספציפית ואנחנו צריכים לקשר בין הלחצן לבין הפונקציה הזאת. יכול להיות לנו הרבה לחצנים או הרבה רכיבים, ויכולות להיות לנו הרבה פונקציות.
אנחנו צריכים להגדיר איזה רכיב, איזה אירוע בדיוק, מפעיל איזו פונקציה שנמצאת כאן במחלקה. אז קודם כל, עבור קליק על הפונקציה להיות בעלת החתימה הבאה.
הרשאת הגישה שלה חייבת להיות public. הפונקציה צריכה להחזיר השם שלה זה לא משנה, אתם יכולים להחליט איזה שם אתם רוצים לתת לפונקציה, אבל מה שמקובל זה את השם של הרכיב שמפעיל את הפונקציה, לדוגמה, ButtonCurrentTime, נניח זה ה-ID שלו, underline ואז איזה אירוע המשתמש ביצע שגורם להפעלה של הפונקציה,
לדוגמה האירוע onClick. הפונקציה הזאת צריכה לקבל view בהמשך נראה בדיוק מה זה ה-view הזה שהיא מקבלת אז יש לנו כאן איזושהי פונקציה ויש לה חתימה מאוד ספציפית אנחנו לא יכולים סתם להמציא את החתימה של הפונקציה הזאת וכל מה שאנחנו רוצים לעשות זה לומר ללחצן הראשון שאם מבצעים עבורו פעילות של קליק כלומר לוחצים עליו
אנחנו רוצים שאוטומטית הפונקציה הזאת תתבצע כתגובה לפעילות עכשיו יש יש משהו מאוד מדליק באנדרואיד סטודיו וזה צביעה באפור של כל מה שאינו בשימוש.
אנחנו רואים שיש לנו פה פונקציה והפונקציה השם שלה צבוע באפור. אנחנו גם רואים שהרכיבים האלה שאנחנו רואים פה למעלה הם גם כן באפור. אפור מתאר שהפונקציה או הרכיב עדיין לא בשימוש.
הנה יש לנו פה פונקציה ואף אחד לא קרא לה. לכן היא באפור הנה יש לנו פה שני משתנים שכל מה שעשינו זה רק הכנסנו אליהם ערכים אבל לא באמת השתמשנו איתם ולכן כאן אנחנו רואים שהם בצבע אפור אם אתם רואים משהו באפור כמו פונקציה או משתנה ברוב רוב המקרים זה אומר שזה כביכול מיותר וכביכול עדיין לא השתמשתם בהם ולכן או שצריך למחוק אותם כי
זה באמת מיותר או שצריך להשתמש בהם אז הנה אנחנו רואים שהפונקציה הזאת היא באפור, איפה אנחנו משתמשים איתה. מה שאנחנו רוצים לעשות זה לגשת ללחצן, לבחור אותו, לגשת לproperties ולחפש פרופרטי שנקרא onClick.
רק עבור אירועי קליק קיים פרופרטי כזה שאנחנו יכולים עכשיו לגשת לערך שלו לבחור את הפונקציה שאנחנו רוצים שהוא יפעיל.
הנה אנחנו רואים שיש לנו פה את הפונקציה ButtonCurrentTimeUnderlineOnClick והיא נמצאת במיין אקטיביטי. אז בואו נבחר את הפונקציה הזאת, נחזור בחזרה לקוד שלנו ופתאום אנחנו רואים שהפונקציה מפסיקה להיות בצבע אפור והופכת להיות שחור רגיל.
זאת נקודה חשובה. זה אומר שמישהו מצביע על הפונקציה או קורא לה בעצם, ומי שקורא לה זה האירוע onclick של הלחצן. אז מה אנחנו רוצים לעשות בתוך הפונקציה?
בתוך הפונקציה אנחנו רוצים לגשת לרכיב TextViewCurrentTime ולהכניס אליו את השעה הנוכחית. אז בואו נעתיק את הרכיב, נדביק אותו, נלחץ נקודה, ויש לנו פה המון פונקציות והמון דברים שאנחנו יכולים לעשות עם הרכיב הוויזואלי הזה שבאון קריאייט איתרנו בדיוק אותו.
סט טקסט מאפשרת להכניס בתוכו טקסט. איזה טקסט אנחנו רוצים להכניס בתוכו? קורנט טיים נקודותיים ולשרשר עם איזשהו משתנה, בוא נפתח פה, שנקרא קורנט טיים שכבר אנחנו הולכים להכניס לתוכו איזשהו שעה שהיא השעה הספציפית הנוכחית.
שימו לב ש-CurrentTime כרגע באפור, אם אני רושם פה CurrentTime פתאום הוא הופך להיות שחור כי השתמשתי בו. איך אני מגלה בג'אווה את השעה הנוכחית? אז יש לנו אפשרות להשתמש במחלקה SimpleDateFormat, נפתח ממנה אובייקט וניתן כאן איזושהי מחרוזת שמייצגת את השעה, פורמט של שעה Hour, Minute,
Second. אז יש לנו כרגע את השעה, אנחנו יכולים לבחור או להגדיר משתנה דייט. משתנה דייט מכיל את השעה הנוכחית. סימפל דייט פורמט מכיל רק את הפורמט שלו.
וכעת אנחנו יכולים לגשת לסימפל דייט פורמט, לקרוא לפונקציית פורמט, לתת לה את המשתנה שמתאר את השעה הנוכחית, ואז ב-current time יש לנו את השעה הנוכחית. כעת אנחנו יכולים להריץ את האפליקציה ולראות איך היא מתנהגת.
בואו ניגש ונפתח לעצמנו את האמולטור. בואו נסגור את החלון הזה, ניתן לאמולטור לרוץ. הנה אנחנו רואים שהוא נפתח פה למטה. בואו נציג אותו.
אפשר את החלונית הזאת לסגור, איבנקו תקפוץ עוד מעט, ויש לנו את האמולטור חי, קיים ופעיל. אנחנו יכולים לחזור לאנדרואיד סטודיו, ללחוץ על לחצן הפליי, אנחנו רואים את הטופס ששואל אותנו על מה בדיוק אנחנו רוצים להריץ את האפליקציה בואו נלחץ אוקיי נציג בחזרה את האמולטור ואנחנו רואים שהאמולטור רץ
והאפליקציה שלנו מיידית מוצגת בו בואו נלחץ על הלחצן show current time ונראה שהשעה הנוכחית מוצגת אם אני אלחץ על show current date כמובן שלא מתבצע שום דבר אז הצלחנו לבנות את האירוע הראשון שמתבצע בלחיצה על קליק בואו נחזור ונראה שיטה נוספת איך אנחנו
יכולים לבנות את הפונקציה הזאת. אז בשיטה הנוספת אנחנו יכולים לגשת לדיזיינר, שימו לב שלפעמים אתם רואים את ה-Rendering Problems האלה, לחיצה על Refresh אמורה לסדר אותם ואז אנחנו יכולים עכשיו לבחור את הלחצן השני, לגשת לאירוע ה-On Click וכאן לרשום את השם של האירוע.
כדוגמא button current date underline onclick אנחנו יכולים כמובן כל שם שאנחנו רוצים בואו נלחץ כאן מבחוץ ניגש עכשיו לקובץ הxml נאתר את הרכיב הזה ונראה כאן שהשם של הפונקציה שרשמנו שזה בעצם שם ה-id של הרכיב הנוכחי של הלחצן underline onclick אנחנו אנחנו רואים שהפונקציה הזאת נכתבה במאפיין
onclick. כל מה שאנחנו צריכים לעשות עכשיו זה איפשהו לעמוד עם הסמן של המקלדת, להמתין ולראות שיש לנו את המנורה הזאת שמופיעה כאן, ואז ללחוץ על הקיצור שמקודם למדנו עליו Alt Enter.
ברגע שאתם עושים Alt Enter, אוטומטית אנדרואיד סטודיו שואלת אתכם האם אתם רוצים ליצור פונקציה בדיוק כזאת במיין אקטיביטי.
או בשלב הזה נלחץ על מכש האנטר, שימו לב אני לא נוגע בעכבר כשאני מתעסק עם קיצורי מקלדת, העכבר נמצא פה, אני פשוט לוחץ על אנטר ואוטומטית האנדרואיד סטודיו בונה לנו את אותה פונקציה שאנחנו מקודם בנינו בעצמנו.
כל מה שנעשה זה נעתיק את הקוד הקודם, ניגש לכאן, נדביק אותו, כאשר אתם מבצעים קופי פייסט של קודים זה די ריסקי, אתם חייבים תמיד בקופי פייסט לגשת וממש לעבור על שורה שורה ולראות שהכל אתם רוצים לשנות כמו שצריך כי זה מקור לבאגים מאוד ידועים שנקראים באג קופי פייסט באגים של קופי פייסט אז אנחנו רוצים לגשת
והפעם אנחנו רוצים שהפורמט