PracticU

Shared Preferences Listener

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

Shared Preferences Listener
אפשר להירשם להאזנה לשינויים ב-Shared Preferences, ולקבל דיווח בכל פעם שערך משתנה יחד עם המפתח ששונה. השיעור מראה איך זה נעשה ומה קורה כשהערך לא משתנה בפועל.
איך זה עובד
1. הרשמה: מקבלים את אובייקט ה-Shared Preferences עם getSharedPreferences ו-MODE_PRIVATE, וקוראים ל-registerOnSharedPreferenceChangeListener. ה-MainActivity מממשת את הממשק SharedPreferences.OnSharedPreferenceChangeListener, ומתקבלת פונקציה אחת: onSharedPreferenceChanged.
2. זיהוי מה השתנה: הפונקציה מקבלת את המפתח, ולכן בודקים key.equals("color").
3. קריאת הערך החדש: מאובייקט ה-Shared Preferences שהתקבל בפונקציה קוראים getString עם ערך ברירת מחדל white. אחר כך צובעים את ה-LinearLayout עם Color.parseColor.
4. הודעה: נוסף גם Toast עם הצבע שהשתנה.
מה רואים בהרצה
- אחרי שמירה עם צבע חדש הרקע נצבע מיד, כי הגיע דיווח על שינוי.
- שמירה של שם וגיל עם אותו צבע כמו קודם לא הפעילה את ההאזנה, ולא הגיעה שום הודעה.
- שינוי הצבע והפעלה של שמירה הפעילו שוב את ההאזנה.
שימו לב
אם ערך נשמר ל-Shared Preferences בלי שהשתנה בפועל, לא מתקבל דיווח.
כעת אפשר להגיב מיד לכל שינוי בהעדפות המשתמש, בלי לבדוק אותן ידנית.
השיעור הבא בקורס: Shared Preferences Activity

פרקי ההרצאה: Shared Preferences Listener

  1. 00:00

    האזנה לשינויים ב-Shared Preferences

  2. 00:40

    רישום OnSharedPreferenceChangeListener

  3. 01:31

    בדיקת המפתח שהשתנה

  4. 02:28

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

  5. 03:10

    שמירה ללא שינוי בערכים

תמלול ההרצאה: Shared Preferences Listener

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

  1. 00:02

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

  2. 00:25

    אז בואו נעשה את זה. יש לנו פה את ה-on create בתוכנית הקודמת שעשינו ומה מה שאנחנו רוצים לעשות זה להגיע לאובייקט השארד פרפרנסס, נקבל אותו, get shared preferences, ניתן לו את אותו הקבוע, app preferences,

  3. 00:45

    ניתן לו mode private ואנחנו יכולים דרך השארד פרפרנסס הזה לבצע רג'יסטריישן ואנחנו רוצים to register on shared preferences change listener.

  4. 01:01

    נגיד לו שהמחלקה שלנו מבצעת את המימוש, נבצע Alt-Enter, Make Main Activity Implement, Enter, והוא נותן לנו רק פונקציה אחת, On Shared Preferences Changed.

  5. 01:18

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

  6. 01:35

    מעולה. מה אנחנו רוצים לעשות כאשר Shared Preferences השתנה. קודם כל אנחנו רוצים לבדוק רגע איזה Shared Preferences השתנה.

  7. 01:44

    אז אנחנו מקבלים את המפתח עצמו. בואו נבצע בדיקה. אם k = color אז אנחנו מעוניינים לבצע String color שווה ולקבל את ה-color החדש.

  8. 02:02

    זה יהיה אובייקט ה-Shared Preferences שאנחנו מקבלים לתוך הפונקציה, נקודה getString. בעצם אנחנו מקבלים את אובייקט השארד פרפרנס הזה.

  9. 02:13

    אז הוא אומר לנו איזה מפתח אתה רוצה, זה יהיה ה-Key עצמו, ומה ה-Default Value, בואו ניתן לו White. למרות שאנחנו לא צריכים, כי בטוח יש שם איזשהו ערך.

  10. 02:27

    הדבר הבא שאנחנו רוצים זה לבצע איתו איזשהו שימוש. בואו ניגש ל-Linear Layout Main, Set Background Color, color.parse והנה ה-color שהוצאנו מה-shared preferences אחרי שהם השתנו.

  11. 02:47

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

  12. 02:56

    בואו נכניס נתונים, מוישה, תם עשרה, רד, נבצע סייב ושימו לב שאוטומטית הצבע נצבע.

  13. 03:10

    למה הצבע נצבע? כי זה התבצע כאן. קיבלנו את ההודעה שהשירד פרפרנסס השתנו וביצענו צביעה.

  14. 03:21

    מה קורה אם אנחנו מבצעים סייבינג אבל השירד פרפרנסס לא באמת משתנה?

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

ההרצאה הקודמת: Shared Preferences Helper Class

ההרצאה הבאה: Shared Preferences Activity

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

  • תיבת דואר משותפת - shared mailbox

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

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