PracticU

List Dialog

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

List Dialog
AlertDialog יכול להציג גם רשימת פריטים לבחירה. המשתמש חייב לבחור פריט או לבטל, ורק אז התיבה נעלמת. בשיעור בונים בחירת צבע רקע מרשימת צבעים.
השלבים העיקריים
1. שני מערכים: מערך מחרוזות colorNames עם השמות שיוצגו (אדום, ירוק, כחול, ועוד), ומערך int בשם colorValues עם ערכי Color המתאימים באותו סדר. הצבעים הם red, green, blue, yellow, cyan ו-magenta.
2. בניית הדיאלוג: AlertDialog.Builder(this) ושרשור: setIcon, setTitle, setCancelable(false), setNegativeButton עם טקסט Cancel ו-null כמאזין, כך שהלחיצה רק סוגרת את התיבה.
3. הרשימה: setItems(colorNames, listener). אחרי create() קוראים ל-show().
4. המאזין, גרסה ראשונה: ה-MainActivity מממשת DialogInterface.OnClickListener. ב-onClick(dialog, which) ה-which הוא אינדקס הפריט שנבחר, ולכן קוראים ל-setBackgroundColor(colorValues[which]). בגרסה הזו המערך צריך להיות משתנה גלובלי.
5. המאזין, גרסה שנייה: מחלקה אנונימית new OnClickListener() שנוצרת במקום, עם אותו קוד. כך אפשר להשתמש במשתנה מקומי כמו colorValues, והקוד קצר ולא מצריך מימוש ממשק בחוץ.
שימו לב
- בתוך מחלקה אנונימית משתנה מקומי של הפונקציה חייב להיות final, ו-Android Studio מוסיפה זאת אוטומטית. כדאי גם לשנות את השם which ל-index.
- שליחת null כמאזין של כפתור Cancel פשוט סוגרת את הדיאלוג.
- בגלל setCancelable(false), לחיצה מחוץ לתיבה לא עושה כלום.
אחרי השיעור אפשר להציג רשימת בחירה בדיאלוג ולהפעיל קוד לפי האינדקס של הפריט שנבחר.
השיעור הבא בקורס: Date Dialog

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

  1. 00:00

    רשימת פריטים בתוך AlertDialog

  2. 00:41

    מערך שמות הצבעים להצגה

  3. 01:28

    מערך ערכי הצבעים האמיתיים

  4. 02:39

    בניית הדיאלוג עם Builder

  5. 03:49

    לחצן Cancel והגדרת setItems

  6. 04:45

    מימוש DialogInterface.OnClickListener

  7. 06:00

    צביעת הרקע לפי הפריט שנבחר

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

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

  1. 00:02

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

  2. 00:25

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

  3. 00:46

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

  4. 01:14

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

  5. 01:43

    אנחנו רוצים ממש לבצע פעולה מסוימת עם צבע אמיתי. לכן בואו ניקח מערך Integeri, נקרא לו colors ונגדיר את הצבעים עצמם. color.red, color.green, יש לנו color.blue, יש לנו את yellow, יש לנו את cyan, והאחרון יהיה לנו את מג'נטה.

  6. 02:20

    והנה יש לנו גם פריטים להצגה וגם פריטים שהם הצבעים עצמם. בואו נקרא לזה color names, קצת יותר משמעותי מ-items ואפשר את זה לשנות ל-color values.

  7. 02:40

    אוקיי, אז מה שנשאר לנו לעשות זה לבנות את ה-alert dialog, נבנה פה alert-dialog = new alert-dialog.builder ניתן לו את ה-context שזה אנחנו ונתחיל להשתמש ב-builder design pattern.

  8. 03:00

    עכשיו יש לנו פה את ה-set-icon והנה יש לנו כאן איזשהו איקון של צבעים בואו ניתן לו r.durable.colors לאחר מכן ניתן לו set-title.select-color לאחר מכן ניתן לו set cancelable false כדי שהיוזר יהיה חייב להתייחס ולא ללחוץ מחוץ לתיבה לאחר מכן יש לנו set negative button מה אנחנו רוצים לעשות אם היוזר רוצה לבטל אז בואו

  9. 03:49

    נגדיר cancel וכאשר הוא מבטל אנחנו בעצם לא רוצים להפעיל שום פונקציה אף אפשר פשוט במקרה הזה לשלוח null ושום דבר לא יתבצע אם הוא לוחץ cancel רק התיבה נסגרת לה. ולבסוף יש לנו את set items וב-set items כאן אנחנו בעצם נותנים לו את הרשימה של הצבעים זה יהיה color names ומה אנחנו רוצים לעשות במידה והיוזר ילחץ על

  10. 04:24

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

  11. 04:49

    מה שנשאר לנו לעשות זה לרשת את האינטרפייס המתאים, בואו נראה אם הוא מאפשר לנו בצורה כזאת, לא, הוא לא מאפשר, אז האינטרפייס שאנחנו צריכים לרשת, בואו ניגש לכאן ו-implement dialogue interface.onclicklistener בואו ניגש

  12. 05:12

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

  13. 05:43

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

  14. 06:07

    הנה יש לנו כאן רפרנס למיין אקטיביטי, אנחנו רוצים לבוא ולומר set color ולשלוח את color values במיקום witch שהwitch זה בעצם הפריט שנבחר כלומר האינדקס שלו בואו נבדוק את זה בואו ניגש ונלחץ על select color הנה מוצגת לנו רשימת הצבעים הנה יש לנו כאן את הכותרת ואת האייקון יש לנו את הלחצן cancel אם אנחנו לוחצים מבחוץ לא קורה כלום cancel פשוט מבטל ובגלל ששלחנו not

  15. 06:48

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

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

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

ההרצאה הבאה: Date Dialog

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

  • list comprehension
  • הוספת אנימציה ל-Dialog
  • פקדי רשימה - List
  • רשימות - List - SharePoint

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

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