PracticU

Writing onClick Events

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › Writing onClick Events
מילון מושגים:
Java - שפת תכנות עילית ומונחית עצמים, הרצה על מכונה וירטואלית (JVM) ומשמשת לפיתוח מגוון יישומים.
View - רכיב שאחראי על הצגת המידע למשתמש (התצוגה) בדפוס MVC. גם טבלה וירטואלית מבוססת שאילתה במסד נתונים.
Android - מערכת הפעלה מבוססת Linux לטלפונים ולמכשירים ניידים, שפותחה על ידי גוגל.
מאפיין - תכונה שמצמידים לרכיב ומתארת אותו או את התנהגותו, למשל מאפיין של תגית HTML או שדה באובייקט.
XML - שפת סימון לייצוג נתונים מובְנים בעזרת תגיות, המשמשת להחלפת מידע בין מערכות ולקובצי הגדרות.
אמולטור - תוכנה שמחקה מכשיר או סביבה אחרת, למשל כדי להריץ ולבדוק אפליקציית מובייל על המחשב.
USB - תקן חיבור אוניברסלי לחיבור התקנים למחשב, כמו זיכרון נייד, מקלדת או מדפסת.
באג - תקלה או שגיאה בקוד שגורמת לתוכנה להתנהג בניגוד למצופה.

Writing onClick Events
בשיעור הזה בונים את התגובה הראשונה של האפליקציה ללחיצת משתמש: כותבים פונקציה ב-Java שמתבצעת אוטומטית כשלוחצים על לחצן, ומקשרים אותה אליו. התוצאה היא אפליקציה שלמה שמציגה שעה ותאריך נוכחיים.
השלבים העיקריים
1. חתימה קבועה לפונקציה: הפונקציה חייבת להיות public, להחזיר void ולקבל פרמטר מסוג View. השם חופשי, אבל מקובל לכתוב את ה-ID של הרכיב, קו תחתון, ושם האירוע, למשל onclick.
2. צבע אפור ב-Android Studio: פונקציה או משתנה באפור פירושם שעוד לא משתמשים בהם. צריך למחוק אותם או להשתמש בהם.
3. קישור דרך Properties: בוחרים את הלחצן, מחפשים את המאפיין onclick ובוחרים בו את הפונקציה. אחרי הקישור הפונקציה בקוד הופכת משחורה מאפורה, כי מישהו קורא לה.
4. הצגת השעה: בתוך הפונקציה קוראים ל-setText של ה-TextView. את השעה מקבלים מאובייקט SimpleDateFormat עם פורמט של שעה, דקה ושנייה, ומשתנה Date שמחזיק את הרגע הנוכחי, וקוראים ל-format.
5. דרך שנייה ליצירת הפונקציה: ב-Designer כותבים את שם הפונקציה במאפיין onclick של הלחצן השני. בקובץ ה-XML מעמידים את הסמן על השם, ובמקום שמופיעה המנורה לוחצים Alt+Enter, ו-Android Studio יוצר את הפונקציה במחלקה.
6. פורמט תאריך: לכפתור השני מעתיקים את הקוד ומשנים את הפורמט ל-MMM (שם החודש), dd (היום) ו-yyyy (השנה). את שם המשתנה משנים ל-currentDate.
7. הרצה: מריצים באמולטור, ואחר כך גם במכשיר אמיתי שמחוברים אליו ב-USB, ובוחרים את שני היעדים בחלון הבחירה. הזמנים באמולטור ובמכשיר יכולים להיות שונים.
קיצורים וכלים
- Alt+Enter יוצר את הפונקציה החסרה מתוך שם שנכתב ב-XML.
- Shift+F6 משנה שם של משתנה בכל המקומות שבהם הוא בשימוש.
שימו לב
העתקה והדבקה של קוד מסוכנת. חובה לעבור על הקוד שורה אחר שורה, כי מכאן נובעים באגים ידועים של copy-paste.
בסיום אפשר לחבר רכיב ויזואלי לפונקציה שמגיבה ללחיצה, ולבדוק אותה גם באמולטור וגם במכשיר אמיתי.
השיעור הבא בקורס: onClick Event Argument

פרקי ההרצאה: Writing onClick Events

  1. 00:00

    קוד כתגובה לאירוע המשתמש

  2. 01:00

    חתימת פונקציית onClick

  3. 02:40

    צביעה באפור של קוד לא בשימוש

  4. 03:39

    קישור הלחצן למאפיין onClick

  5. 04:58

    הצגת השעה עם setText

  6. 06:55

    הרצת האפליקציה באמולטור

  7. 08:12

    שיטה שנייה דרך הדיזיינר

  8. 09:37

    יצירת הפונקצייה עם Alt-Enter

תמלול ההרצאה: Writing onClick Events

הטקסט המלא של הדקות הראשונות בהרצאה «Writing onClick Events» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:03

    אחרי שבנינו את העיצוב עבור האפליקציה שלנו ואחרי שבקוד הג'אווה איתרנו את הרכיבים הוויזואליים שאנחנו רוצים להתייחס אליהם ולשנות את ערכם בזמן הריצה אנחנו יכולים לגשת ולכתוב קוד שיתבצע כתגובה לאירועים כלשהם של המשתמש.

  2. 00:25

    אז קודם כל נבין איך בעצם הולכים לעשות את זה. מה שקורה זה שהמשתמש מבצע איזושהי פעולה על רכיב ויזואלי. לדוגמה במקרה הזה לוחץ על הלחצן מה שהוא עושה הוא בעצם ביצע פעולה שנקראת קליק אנחנו רוצים לכתוב פונקציה במחלקה בג'אווה כך שברגע שהוא יבצע את אותו אירוע את אותו איבנט המערכת אוטומטית

  3. 00:56

    תקרא לפונקציה שלנו כמובן הפונקציה צריכה להיות בעלת חתימה מאוד ספציפית ואנחנו צריכים לקשר בין הלחצן לבין הפונקציה הזאת. יכול להיות לנו הרבה לחצנים או הרבה רכיבים, ויכולות להיות לנו הרבה פונקציות.

  4. 01:14

    אנחנו צריכים להגדיר איזה רכיב, איזה אירוע בדיוק, מפעיל איזו פונקציה שנמצאת כאן במחלקה. אז קודם כל, עבור קליק על הפונקציה להיות בעלת החתימה הבאה.

  5. 01:31

    הרשאת הגישה שלה חייבת להיות public. הפונקציה צריכה להחזיר השם שלה זה לא משנה, אתם יכולים להחליט איזה שם אתם רוצים לתת לפונקציה, אבל מה שמקובל זה את השם של הרכיב שמפעיל את הפונקציה, לדוגמה, ButtonCurrentTime, נניח זה ה-ID שלו, underline ואז איזה אירוע המשתמש ביצע שגורם להפעלה של הפונקציה,

  6. 02:05

    לדוגמה האירוע onClick. הפונקציה הזאת צריכה לקבל view בהמשך נראה בדיוק מה זה ה-view הזה שהיא מקבלת אז יש לנו כאן איזושהי פונקציה ויש לה חתימה מאוד ספציפית אנחנו לא יכולים סתם להמציא את החתימה של הפונקציה הזאת וכל מה שאנחנו רוצים לעשות זה לומר ללחצן הראשון שאם מבצעים עבורו פעילות של קליק כלומר לוחצים עליו

  7. 02:35

    אנחנו רוצים שאוטומטית הפונקציה הזאת תתבצע כתגובה לפעילות עכשיו יש יש משהו מאוד מדליק באנדרואיד סטודיו וזה צביעה באפור של כל מה שאינו בשימוש.

  8. 02:51

    אנחנו רואים שיש לנו פה פונקציה והפונקציה השם שלה צבוע באפור. אנחנו גם רואים שהרכיבים האלה שאנחנו רואים פה למעלה הם גם כן באפור. אפור מתאר שהפונקציה או הרכיב עדיין לא בשימוש.

  9. 03:11

    הנה יש לנו פה פונקציה ואף אחד לא קרא לה. לכן היא באפור הנה יש לנו פה שני משתנים שכל מה שעשינו זה רק הכנסנו אליהם ערכים אבל לא באמת השתמשנו איתם ולכן כאן אנחנו רואים שהם בצבע אפור אם אתם רואים משהו באפור כמו פונקציה או משתנה ברוב רוב המקרים זה אומר שזה כביכול מיותר וכביכול עדיין לא השתמשתם בהם ולכן או שצריך למחוק אותם כי

  10. 03:40

    זה באמת מיותר או שצריך להשתמש בהם אז הנה אנחנו רואים שהפונקציה הזאת היא באפור, איפה אנחנו משתמשים איתה. מה שאנחנו רוצים לעשות זה לגשת ללחצן, לבחור אותו, לגשת לproperties ולחפש פרופרטי שנקרא onClick.

  11. 04:06

    רק עבור אירועי קליק קיים פרופרטי כזה שאנחנו יכולים עכשיו לגשת לערך שלו לבחור את הפונקציה שאנחנו רוצים שהוא יפעיל.

  12. 04:19

    הנה אנחנו רואים שיש לנו פה את הפונקציה ButtonCurrentTimeUnderlineOnClick והיא נמצאת במיין אקטיביטי. אז בואו נבחר את הפונקציה הזאת, נחזור בחזרה לקוד שלנו ופתאום אנחנו רואים שהפונקציה מפסיקה להיות בצבע אפור והופכת להיות שחור רגיל.

  13. 04:42

    זאת נקודה חשובה. זה אומר שמישהו מצביע על הפונקציה או קורא לה בעצם, ומי שקורא לה זה האירוע onclick של הלחצן. אז מה אנחנו רוצים לעשות בתוך הפונקציה?

  14. 04:56

    בתוך הפונקציה אנחנו רוצים לגשת לרכיב TextViewCurrentTime ולהכניס אליו את השעה הנוכחית. אז בואו נעתיק את הרכיב, נדביק אותו, נלחץ נקודה, ויש לנו פה המון פונקציות והמון דברים שאנחנו יכולים לעשות עם הרכיב הוויזואלי הזה שבאון קריאייט איתרנו בדיוק אותו.

  15. 05:23

    סט טקסט מאפשרת להכניס בתוכו טקסט. איזה טקסט אנחנו רוצים להכניס בתוכו? קורנט טיים נקודותיים ולשרשר עם איזשהו משתנה, בוא נפתח פה, שנקרא קורנט טיים שכבר אנחנו הולכים להכניס לתוכו איזשהו שעה שהיא השעה הספציפית הנוכחית.

  16. 05:49

    שימו לב ש-CurrentTime כרגע באפור, אם אני רושם פה CurrentTime פתאום הוא הופך להיות שחור כי השתמשתי בו. איך אני מגלה בג'אווה את השעה הנוכחית? אז יש לנו אפשרות להשתמש במחלקה SimpleDateFormat, נפתח ממנה אובייקט וניתן כאן איזושהי מחרוזת שמייצגת את השעה, פורמט של שעה Hour, Minute,

  17. 06:19

    Second. אז יש לנו כרגע את השעה, אנחנו יכולים לבחור או להגדיר משתנה דייט. משתנה דייט מכיל את השעה הנוכחית. סימפל דייט פורמט מכיל רק את הפורמט שלו.

  18. 06:39

    וכעת אנחנו יכולים לגשת לסימפל דייט פורמט, לקרוא לפונקציית פורמט, לתת לה את המשתנה שמתאר את השעה הנוכחית, ואז ב-current time יש לנו את השעה הנוכחית. כעת אנחנו יכולים להריץ את האפליקציה ולראות איך היא מתנהגת.

  19. 06:59

    בואו ניגש ונפתח לעצמנו את האמולטור. בואו נסגור את החלון הזה, ניתן לאמולטור לרוץ. הנה אנחנו רואים שהוא נפתח פה למטה. בואו נציג אותו.

  20. 07:18

    אפשר את החלונית הזאת לסגור, איבנקו תקפוץ עוד מעט, ויש לנו את האמולטור חי, קיים ופעיל. אנחנו יכולים לחזור לאנדרואיד סטודיו, ללחוץ על לחצן הפליי, אנחנו רואים את הטופס ששואל אותנו על מה בדיוק אנחנו רוצים להריץ את האפליקציה בואו נלחץ אוקיי נציג בחזרה את האמולטור ואנחנו רואים שהאמולטור רץ

  21. 07:50

    והאפליקציה שלנו מיידית מוצגת בו בואו נלחץ על הלחצן show current time ונראה שהשעה הנוכחית מוצגת אם אני אלחץ על show current date כמובן שלא מתבצע שום דבר אז הצלחנו לבנות את האירוע הראשון שמתבצע בלחיצה על קליק בואו נחזור ונראה שיטה נוספת איך אנחנו

  22. 08:13

    יכולים לבנות את הפונקציה הזאת. אז בשיטה הנוספת אנחנו יכולים לגשת לדיזיינר, שימו לב שלפעמים אתם רואים את ה-Rendering Problems האלה, לחיצה על Refresh אמורה לסדר אותם ואז אנחנו יכולים עכשיו לבחור את הלחצן השני, לגשת לאירוע ה-On Click וכאן לרשום את השם של האירוע.

  23. 08:41

    כדוגמא button current date underline onclick אנחנו יכולים כמובן כל שם שאנחנו רוצים בואו נלחץ כאן מבחוץ ניגש עכשיו לקובץ הxml נאתר את הרכיב הזה ונראה כאן שהשם של הפונקציה שרשמנו שזה בעצם שם ה-id של הרכיב הנוכחי של הלחצן underline onclick אנחנו אנחנו רואים שהפונקציה הזאת נכתבה במאפיין

  24. 09:17

    onclick. כל מה שאנחנו צריכים לעשות עכשיו זה איפשהו לעמוד עם הסמן של המקלדת, להמתין ולראות שיש לנו את המנורה הזאת שמופיעה כאן, ואז ללחוץ על הקיצור שמקודם למדנו עליו Alt Enter.

  25. 09:36

    ברגע שאתם עושים Alt Enter, אוטומטית אנדרואיד סטודיו שואלת אתכם האם אתם רוצים ליצור פונקציה בדיוק כזאת במיין אקטיביטי.

  26. 09:47

    או בשלב הזה נלחץ על מכש האנטר, שימו לב אני לא נוגע בעכבר כשאני מתעסק עם קיצורי מקלדת, העכבר נמצא פה, אני פשוט לוחץ על אנטר ואוטומטית האנדרואיד סטודיו בונה לנו את אותה פונקציה שאנחנו מקודם בנינו בעצמנו.

  27. 10:04

    כל מה שנעשה זה נעתיק את הקוד הקודם, ניגש לכאן, נדביק אותו, כאשר אתם מבצעים קופי פייסט של קודים זה די ריסקי, אתם חייבים תמיד בקופי פייסט לגשת וממש לעבור על שורה שורה ולראות שהכל אתם רוצים לשנות כמו שצריך כי זה מקור לבאגים מאוד ידועים שנקראים באג קופי פייסט באגים של קופי פייסט אז אנחנו רוצים לגשת

  28. 10:32

    והפעם אנחנו רוצים שהפורמט

לקורס המלא: קורס פיתוח אפליקציות לאנדרואיד

ההרצאה הקודמת: Finding Views by ID

ההרצאה הבאה: onClick Event Argument

הרצאות קשורות מקורסים אחרים

  • Writing Recursion
  • Device Events
  • אירועים - Events - חלק 1
  • אירועים EVENTS ב-NodeJS

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון