PracticU

Date Dialog

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › Date Dialog
מילון מושגים:
בנאי - מתודה מיוחדת שמופעלת אוטומטית בעת יצירת אובייקט ממחלקה, ומאתחלת את ערכיו ההתחלתיים.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
ממשק - נקודת מגע בין רכיבים: ממשק משתמש שבו אדם מפעיל תוכנה, או ממשק תכנותי שמגדיר אילו פעולות רכיב אחד חושף לאחר.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
כפתור - רכיב בממשק המשתמש שהמשתמש לוחץ עליו כדי להפעיל פעולה, כמו שליחת טופס או מעבר לדף אחר.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.

Date Dialog
הדיאלוג DatePickerDialog יורש מ-AlertDialog וקולט מהמשתמש תאריך. השיעור מראה איך יוצרים אותו, איך מקבלים את התאריך שנבחר ואיך מציגים אותו בפורמט נוח.
איך בונים אותו
1. הקונסטרקטור: מקבל Context, אובייקט שמממש OnDateSetListener, ואחריהם שנה, חודש ויום ברירת מחדל. בהתחלה ניתן ערך קבוע (1.1.2017), ובהמשך התאריך הנוכחי. בשיעור this ניתן פעמיים: פעם כ-Context ופעם כמאזין.
2. מימוש הממשק: Alt+Enter על Make MainActivity implement OnDateSetListener מוסיף את הפונקציה onDateSet, שמופעלת רק כשהמשתמש לוחץ אישור.
3. הצגה: setCancelable(false) כדי שלחיצה בחוץ לא תבטל, ואחר כך show(). כפתור Cancel סוגר בלי להפעיל את הפונקציה.
4. פורמט התאריך: בתוך onDateSet משתמשים ב-String.format עם %02d/%02d/%04d לפי היום, החודש והשנה. הספרה אחרי האפס היא מספר הספרות עם אפסים מובילים, ולכן יום 5 מוצג כ-05. את ההודעה מציגים ב-Toast.
5. תאריך נוכחי כברירת מחדל: Calendar.getInstance() ואז calendar.get(Calendar.YEAR), Calendar.MONTH ו-Calendar.DAY_OF_MONTH, ומעבירים אותם לקונסטרקטור.
שימו לב
- החודשים ב-onDateSet ממוספרים מ-0 עד 11, ולכן יש להוסיף 1 לחודש לפני ההצגה. בבדיקה אפריל הופיע כ-3 עד שהוסיפו 1.
- הפרמטר הראשון והשני this שונים במשמעות: Context לעומת מאזין, אף שהאובייקט זהה.
אחרי השיעור אפשר לקלוט תאריך מהמשתמש עם דיאלוג מובנה, לפרמט אותו ולהתחיל מהתאריך של היום.
השיעור הבא בקורס: Time Dialog

פרקי ההרצאה: Date Dialog

  1. 00:00

    מהו DatePickerDialog

  2. 00:39

    פרמטרי הקונסטרקטור ותאריך ברירת מחדל

  3. 01:58

    מימוש OnDateSetListener והצגת הדיאלוג

  4. 02:54

    בניית הודעה עם String.format

  5. 03:38

    אפסים מקדימים ביום, חודש ושנה

  6. 04:40

    הצגת התאריך שנבחר בטוסט

תמלול ההרצאה: Date Dialog

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

  1. 00:02

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

  2. 00:15

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

  3. 00:27

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

  4. 00:45

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

  5. 01:10

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

  6. 01:26

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

  7. 01:57

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

  8. 02:19

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

  9. 02:49

    שילחץ על cancel ואז לא יקרה כלום הדבר הבא שאנחנו רוצים לעשות זה לבצע פעולה מסוימת במידה והוא בחר תאריך במקרה כזה הפונקציה onDateSet מופעלת ואנחנו רוצים לייצר פה איזשהו message להצגה שאומר איזה תאריך נבחר בואו נשתמש ב-String.format String.format פשוט מאפשרת לנו לפרמט מחרוזת כך שאנחנו יכולים גם לרשום במחוזת משלנו וגם לשלב בתוכה משתנים חיצוניים.

  10. 03:21

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

  11. 03:48

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

  12. 04:04

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

  13. 04:30

    בהתאמה במקומות כאלה. אז אם אנחנו בתאריך עברי, אז אנחנו רוצים קודם כל את ה-day of month, לאחר מכן month of year, ולאחר מכן את ה-year שקיבלנו.

  14. 04:46

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

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

ההרצאה הקודמת: List Dialog

ההרצאה הבאה: Time Dialog

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

  • הוספת אנימציה ל-Dialog
  • תיבות דו-שיח - Build-In Dialog Boxes

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

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