
EditText להזנה, לחצן Save, ו-ListView עם ArrayAdapter על ArrayList של מחרוזות. Save מוסיף את המטלה לרשימה, מרענן את ה-Adapter ומנקה את התיבה. לחיצה על פריט פותחת AlertDialog (עם setCancelable(false)), ו-Yes מסיר את הפריט ומרענן.Intent בלי Activity.com.practicu...TASK_ADDED. אפליקציה אחרת תאזין בדיוק ל-Action הזה.putExtra עם המטלה שנוספה (שם הפריט מומצא וניתן לבחור כל שם).sendBroadcast(intent) משדרת את ה-Intent למערכת השידורים של המכשיר, וכל אפליקציה רשומה מקבלת אותו מיד.TASK_REMOVED, עם extra של המטלה שנמחקה (בשם שמתאים לזמן עבר).sendBroadcast.הטקסט המלא של הדקות הראשונות בהרצאה «Broadcast» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שראינו איך אנחנו יכולים לקבל דיווחי Broadcast מהמערכת, בואו נראה איך אנחנו יכולים לבנות אפליקציה שמשדרת Broadcast, כך שאפליקציות אחרות יוכלו לקבל בדיוק את ה-Broadcast האלה.
אז יש לנו פה אפליקציה פשוטה שמה שהיא עושה היא עושה רשימה של מטלות. יש לנו פה Edit Text שהיוזר יכול להכניס מטלה, יש לנו כאן לחצן שמאפשר לשמור את המטלה, יש לנו List View שמאפשר להציג את המטלות לאחר השמירה.
בואו קודם כל נראה מה קורה ב-Java Code. כאשר אנחנו מגיעים לקוד, בואו נעבור ממש ונראה איך כל הסיפור הזה בנוי. יש לנו כאן את הרכיבים הוויזואליים, יש לנו את ה-Edit Text ואת ה-List View.
יש לנו כאן את ה-ArrayList בשביל שיחזיק את המטלות כסטרינגים. יש לנו ה-ArrayAdapter בכדי לבצע את התצוגה. כאן איתרנו את הרכיבים הוויזואליים, את ה-Edit Text ואת ה-List View.
הנה יצרנו כאן אדפטר שמציג רשימה פשוטה, Simple List Items, ויש לנו כאן חיבור של האדפטר לליסט. לאחר מכן יש לנו פה רישום לאירוע של קליק, אייטם קליק.
אז קודם כל בלחצן Save, כל מה שאנחנו עושים, אנחנו לוקחים את המידע שהיוזר הכניס מה-Edit Text, שומרים אותו באיזושהי סטרינג פה task to add, מוסיפים את זה ל-array list ומרפרשים את האדפטר וזה יגרום לרשימה של המטלות להיות עוד פעם מוצגות בליסט כולל המטלה החדשה שהוספנו.
לאחר מכן אנחנו פשוט מנקים את האדי טקסט. זה מתרחש בלחצן add. כאשר היוזר לוחץ על פריט ברשימה אז מה שאנחנו עושים אנחנו מציגים לו אלרט דיאלוג בכדי לשאול אותו האם הוא מעוניין למחוק את הפריט.
אם הוא רוצה למחוק את הפריט אז הוא לוחץ על כן, אם הוא לא רוצה הוא לוחץ על לא. קודם כל אם הוא לוחץ על לא, לא קורה שום דבר. יש לנו פה נאל ששום דבר לא מתבצע והדיאלוג נסגר ולא קורה כלום.
אם המשתמש לוחץ על כן, מופעל האירוע של הכן. מה שיש לנו פה באירוע של הכן זה בעצם אנחנו מגלים איזה פריט לפי הפוזישן היוזר רוצה למחוק, מסירים אותו מה-ArrayList ועוד פעם מרפרשים את האדפטר ואז כמובן אנחנו לא נראה את הפריט הזה ברשימה.
בנוסף יש לנו פה show בשביל להציג את הדיאלוג בלחיצה על פריט. בואו נריץ ונראה איך כל הסיפור הזה קודם כל עובד.
הנה אנחנו רואים שהאפליקציה רצה על האמולטור ובואו נכניס כאן איזשהו פריט לרשימה של המטלות. the cat אני לוחץ על save ואני רואה את הפריט כאן clean the house בואו נלחץ על save והנה אנחנו רואים את הפריט כאן בואו נרשום buy some dog bonzo בואו נלחץ על save סבבה
יש לנו פה רשימות של פריטים עכשיו כשאנחנו לוחצים קליק על פריט מופיע לנו דיאלוג אם אני לא רוצה למחוק אותו אני לוחץ על no, אם אני לוחץ כאן בחוץ אז אני רואה שהדיאלוג לא נסגרת כי יש לנו set cancelable false כמו שלמדנו פעם בדיאלוגס ואם אנחנו לוחצים על כן אז הפריט פשוט נמחק מהרשימה.
בואו נמחק עוד אחד, נלחץ כן והפריטים נמחקים וככה אנחנו יכולים להוסיף פריטים ולמחוק פריטים. זאת אומרת יש לנו כאן אפליקציה שפשוט היא מנהלת מטלות עבור היוזר, היא מאפשרת להוסיף מטלה, לראות את המטלה ברשימה ולמחוק מטלות מהרשימה.
אז מה שאנחנו רוצים להוסיף למערכת הזאת זה פשוט דיווח של מטלה. זאת אומרת כאשר היוזר הוסיף מטלה אנחנו רוצים לדווח את זה to broadcast it החוצה וכאשר הוא מוחק מטלה אנחנו רוצים to broadcast it החוצה בכדי שאפליקציות אחרות שמתעסקות עם המטלות של היוזר רוצות לדעת את זה יוכלו לקבל את הדיווחים ולהציג את זה ליוזר.
אז קודם כל כשאנחנו רוצים לדווח שמטלה התווספה זה כמובן מתבצע כאן בלחצן של הסייב מיד אחרי שאנחנו מוסיפים אותה. אז איך אנחנו מדווחים שמטלה התווספה עבור מערכת הברודקאסט של אנדרואיד?
הדבר הראשון שאנחנו עושים זה יוצרים אינטנט, כשהאינטנט הזה הוא אינטנט ריק. הנה יש לנו פה אובייקט אינטנט ריק לגמרי. הדבר הבא שאנחנו עושים זה אנחנו מגדירים עבור האינטנט אקשן, אבל האקשן שאנחנו מגדירים מורכב משני חלקים.
קודם כל זה מחרוזת ויש לה שני חלקים. החלק הראשון זה בעצם הפאקג' הנוכחי של האפליקציה. חייב להיות. הנה אני רואה פה com.practic use שזה הפאקג' הסטנדרטי שאנחנו כל הזמן משתמשים איתו.
אפשר לראות את זה גם כאן במערכת התיקיות. זה החלק הראשון ואז אנחנו חייבים לרשום נקודה ולהמציא שם נהוג באותיות גדולות underline בין מילים שהשם מתאר מה בדיוק האירוע שאנחנו רוצים לדווח.
אנחנו רוצים לדווח ש-Task Added והכל. עכשיו מערכת אחרת תוכל להאזין בדיוק לאקשן הזה ולקבל אותו כשהוא יתרחש. הדבר הבא שאנחנו רוצים לעשות זה להכניס Extras אם יש לנו, לא חייב להיות לנו, אבל במקרה הזה אנחנו כן רוצים להוסיף איזה אקסטרה שנקרא Task Added, כלומר המטלה שהתווספה
ואנחנו רוצים את ה-Task Added שהוספנו או שהיוזר הכניס דרך תיבת הטקסט. אז יש סתם שם מומצא, אתם יכולים להמציא פה כל שם וזה הפריט שאתם רוצים לדווח.
אנחנו יכולים לדווח כמה אקסטרות שאנחנו רוצים. הדבר הבא שאנחנו עושים זה משדרים את הברודקאסט. send broadcast זאת פונקציה של האקטיביטי שמאפשרת לקבל את האינטנט שמוכן ומחזיק את כל המידע של הברודקאסט ופשוט משדרת אותו למערכת הברודקאסט של המכשיר עצמו.
כל אפליקציה אחרת שנרשמה לברודקאסט הספציפי הזה מיידית בשלב הזה תקבל את הברודקאסט ותוכל לכתוב קוד שיתבצע כפעולה עבור הברודקאסט הזה.
בואו נבצע בדיוק את אותו הדבר או משהו קצת