
ListActivity מקצרת את הקוד כשהמסך הוא בעצם רשימה אחת. בשיעור לוקחים את אפליקציית החיות ומשנים אותה כך שתשתמש בה.ListActivity במקום מ-AppCompatActivity.@android:id/list. המחלקה מחפשת בדיוק אותו.listViewAnimals, את setAdapter ואת הרישום לאירוע.setListAdapter(animalsAdapter), פונקציה שהאקטיביטי קיבלה בירושה.onListItemClick ומעבירים אליה את קוד ה-Toast, ועכשיו אפשר להשתמש ב-this כ-Context.onListItemClick.הטקסט המלא של הדקות הראשונות בהרצאה «List Activity» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו ראינו איך אנחנו יכולים להציג ListView על ידי פשוט רכיב ListView שבו אנחנו מציגים פריטים בצורה פשוטה או בצורה מעוצבת על ידי layout משלנו.
אבל למעשה אנחנו יכולים טיפה לפשט את הקוד הזה אם אנחנו משתמשים במחלקה שנקראת List Activity. אנחנו רואים שה-Main Activity שלנו יורשת את המחלקה Compat Activity, Compat זה קיצור של Compatibility, אבל יש מחלקה שנקראת List Activity שאנחנו יכולים לרשת אותה ואז כל הסיפור הזה הופך להיות לטיפה יותר פשוט מבחינת הקוד של ה-Main
Activity. אז בואו נראה איך זה מתבצע. מה שאנחנו צריכים לעשות, שימו לב, ירשתי את המחלקה List Activity במקום המחלקה AppCompat Activity ובמקום ה-ID List View Animals שהמצאנו אנחנו צריכים לתת ID ספציפי, ה-ID שאנחנו צריכים לתת ו-ID שקיים ב-SDK של אנדרואיד והוא נקרא
android.id/list וזה ID ששייך ל-ListView עבור מחלקת ה-ListActivity. כל מה שעשיתי זה שיניתי ב-Layout את ה-ID הזה ואז אנחנו יכולים להשתמש בו.
מה אנחנו צריכים לשנות כאן? קודם כל אין צורך ב-ListView Animals הזה, אנחנו פשוט יכולים למחוק אותו, כאן אנחנו לא צריכים לאתר אותו מפני שהמחלקה List Activity כבר מכירה שיש לה את ה-List View הזה ותחפש ספציפית את ה-ID הזה, אז אנחנו יכולים להיפטר גם מהשורה הזאת.
אין לנו פה Set Adapter ואין לנו כאן את הרישום של האירוע. ניפטר מזה, נשאיר רק את ה-Tost כי אותו אנחנו הולכים, בעצם איתו אנחנו הולכים להשתמש.
האדפטר כמובן קיים לנו כי אנחנו כן צריכים לומר לליסט אקטיביטי ולליסט ויו איך להציג את הנתונים אבל מה שאנחנו צריכים לעשות זה פשוט לקרוא לפונקציה setListAdapter שכבר יש לנו אותה בתור אקטיביטי אנחנו מיין אקטיביטי אבל אנחנו ירשנו את ליסט אקטיביטי קיבלנו מליסט אקטיביטי את כל הפונקציות כולל
setListAdapter שמקודם הייתה שייכת לרכיב הליסט ויו אז כל מה שאנחנו צריכים לעשות זה פשוט לתת לה את האנימרס אדאפר זה דבר אחד ולגבי הפונקציה של האירוע אנחנו פשוט יכולים לדרוס אותה on list item click ששייכת למחלקת הבפיף שלנו פותר מזה וכעת אנחנו יכולים לקחת את פקודת הטוסט ולהדביק
אותה בתוך הפונקציה הזאת כמובן שעכשיו אנחנו יכולים