PracticU

Creating the Data to Display

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › Creating the Data to Display
מילון מושגים:
לייאאוט - ארגון וסידור הרכיבים החזותיים על המסך או בדף, כמו מיקום כפתורים, טקסט ותמונות.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
בנאי - מתודה מיוחדת שמופעלת אוטומטית בעת יצירת אובייקט ממחלקה, ומאתחלת את ערכיו ההתחלתיים.
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.
Android - מערכת הפעלה מבוססת Linux לטלפונים ולמכשירים ניידים, שפותחה על ידי גוגל.
רכיב - יחידת בניין עצמאית וניתנת לשימוש חוזר בתוך מערכת או ממשק משתמש, שאחראית על חלק מוגדר מהתפקוד.
ArrayList - מבנה נתונים של רשימה דינמית שגודלה משתנה, הנפוץ בשפות כמו Java ו-C#.
root - משתמש העל במערכות Linux, בעל הרשאות מלאות לכל פעולה. גם הרמה העליונה בעץ של תיקיות או נתונים.

Creating the Data to Display
לפני בניית הפרגמנטים של Master Details מכינים את התשתית: מחלקת הנתונים, ה-layout של פריט ברשימה, והאדפטר שמציג את הרשימה.
השלבים העיקריים
1. מחלקת הנתונים: יוצרים מחלקה Animal עם שני שדות, type (סוג החיה, למשל כלב או ארנב) ו-description, עם getters, setters וקונסטרקטור (Alt+Insert).
2. מזהה התמונה: מוסיפים getImageId(), שמחזירה context.getResources().getIdentifier(...) על שם הסוג באותיות קטנות, מתיקיית drawable ועם context.getPackageName(). שמות התמונות הם שמות החיות באותיות קטנות.
3. קונטקסט גלובלי: מעתיקים את מחלקת MyApp מהפרויקט הקודם, שמכילה את הקונטקסט ואת isPortrait ו-isLandscape. מגדירים אותה במניפסט ב-android:name=".MyApp", וקוראים ל-MyApp.getContext().
4. שמירה בין רכיבים: Animal מממשת Serializable, כי נרצה להכניס אותה ל-Bundle ולהעביר בין פרגמנטים ואקטיביטיז. (Parcelable היא אפשרות נוספת.)
5. ריפוזיטורי: מדביקים מחלקה מוכנה שמחזירה ArrayList<Animal> של כל החיות.
6. ה-layout של פריט: קובץ item_animal עם LinearLayout אופקי ו-gravity מסוג center_vertical, ובו ImageView בגודל 70dp ב-ID imageViewAnimal ו-TextView ב-ID textViewType (גודל 25sp, צבע כחול). את src ואת text מחליפים ל-tools: כדי שיוצגו רק בדיזיינר.
7. האדפטר: AnimalsAdapter יורשת ArrayAdapter<Animal>, מקבלת Context ו-ArrayList<Animal>, וקוראת ל-super עם 0 כ-layout. שומרת LayoutInflater מ-LAYOUT_INFLATER_SERVICE.
8. getView: מנפחת את R.layout.item_animal עם root של null, משיגה את שני הרכיבים, מקבלת את החיה עם getItem(position), ומציבה setImageResource(animal.getImageId()) ו-setText(animal.getType()). מחזירה את ה-root.
בהרצאה הבאה בונים את הפרגמנטים עצמם.
כעת התשתית לרשימת החיות מוכנה: מחלקה, ריפוזיטורי, layout לפריט ואדפטר.
השיעור הבא בקורס: Master Details - Adding Fragments

פרקי ההרצאה: Creating the Data to Display

  1. 00:00

    המחלקה שמתארת את הדאטה

  2. 00:34

    יצירת מחלקת Animal

  3. 01:13

    Getters, Setters ו-Constructor

  4. 01:54

    הוספת הפונקציה getImageId

  5. 02:39

    מחלקת MyApp והגדרה במניפסט

  6. 03:37

    שליפת ID התמונה עם getIdentifier

  7. 04:35

    מימוש Serializable עבור Animal

  8. 05:13

    הוספת ה-Repository של החיות

תמלול ההרצאה: Creating the Data to Display

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

  1. 00:00

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

  2. 00:20

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

  3. 00:41

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

  4. 01:10

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

  5. 01:26

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

  6. 01:51

    התמונות בכוונה מכילות את השם של החיה, כמובן באותיות קטנות. אז בואו נצרף עוד פונקציה שנקראת public, היא מחזירה int, והיא נקראת get image id. והפונקציה הזאת מחזירה לנו את ה-id של התמונה.

  7. 02:17

    בשביל להשיג את ה-ID של התמונה, אנחנו צריכים את הקונטקסט הגלובלי שעבדנו איתו כל הזמן. אז יש לנו כאן בדסטופ את My App, בואו נבצע Copy, נחזור בחזרה ונבצע Paste, נבצע אוקיי, והנה יש לנו פה את My App שמכילה את הקונטקסט הגלובלי, וגם היא מכילה, שתי פונקציות שעבדנו איתם או שבנינו אותם בעבר, isPortrait וisLandscape,

  8. 02:52

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

  9. 03:13

    כמובן הנקודה זה הפקאג' הכללי של האפליקציה. עכשיו, באמת הקונטקסט יאוכלס בקונטקסט של האפליקיישן, ואנחנו יכולים להשתמש איתו בכל מקום. אנחנו רוצים כאן להביא את הקונטקסט על ידי myApp.getContext, ואם יש לנו את הקונטקסט, אנחנו יכולים to return context, getResources, getIdentifier, ואז לפי הטייפ, הסוג של החיה,

  10. 03:49

    בני, deer, duckling וכדומה, אנחנו רוצים קודם כל להפוך את זה לlower קייס, כי יכול להיות שהטייפ הוא מתחיל בעוד גדולה, ומתוך תיקיית drawable, אנחנו רוצים לקבל את החיה, אנחנו צריכים להביא פה רק את הדפולט פאקאג', וזה יהיה context get package name אז השורה הזאת basically פשוט מביאה את ה-id של התמונה שמייצגת את החיה

  11. 04:23

    כאשר אנחנו משתמשים בקונטקסט הגלובלי אז ככה זה מאוד מאוד פשוט שיש לנו איזושהי פונקציה שנקרא את get image id והיא חלק מהתשתית של האנימל הדבר הבא שכדאי לנו לעשות כבר עכשיו זה to implement את serializable, כי אנחנו הולכים ליצור obiect animal ולשלוח אותו, בואו נניח מפרגמנט אחת לאקטיביטי לפרגמנט אחרת, אנחנו רוצים להכניס obiect animal לתוך

  12. 04:59

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

  13. 05:13

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

  14. 05:43

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

  15. 06:02

    אז זה מתבצע על ידי כמובן הוספת layout חדש.

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

ההרצאה הקודמת: הסבר על Master Details

ההרצאה הבאה: Master Details - Adding Fragments

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

  • Creating Variables
  • Data Contracts
  • Data Driven Test - חלק 1
  • הסבר על Data Warehouse

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

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