
getSharedPreferences ו-MODE_PRIVATE, וקוראים ל-registerOnSharedPreferenceChangeListener. ה-MainActivity מממשת את הממשק SharedPreferences.OnSharedPreferenceChangeListener, ומתקבלת פונקציה אחת: onSharedPreferenceChanged.key.equals("color").getString עם ערך ברירת מחדל white. אחר כך צובעים את ה-LinearLayout עם Color.parseColor.Toast עם הצבע שהשתנה.הטקסט המלא של הדקות הראשונות בהרצאה «Shared Preferences Listener» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
חלק מהיכולות שהשארט פרפרנסס מספקים לנו זה היכולת להאזין לשינויים של השארט פרפרנסס. כלומר אנחנו יכולים להירשם להאזנה לשינויי שארט פרפרנסס כאשר שארט פרפרנסס כלשהו משתנה אנחנו נקבל את הדיווח ונוכל גם לדעת מה בדיוק השתנה בשארט פרפרנסס.
אז בואו נעשה את זה. יש לנו פה את ה-on create בתוכנית הקודמת שעשינו ומה מה שאנחנו רוצים לעשות זה להגיע לאובייקט השארד פרפרנסס, נקבל אותו, get shared preferences, ניתן לו את אותו הקבוע, app preferences,
ניתן לו mode private ואנחנו יכולים דרך השארד פרפרנסס הזה לבצע רג'יסטריישן ואנחנו רוצים to register on shared preferences change listener.
נגיד לו שהמחלקה שלנו מבצעת את המימוש, נבצע Alt-Enter, Make Main Activity Implement, Enter, והוא נותן לנו רק פונקציה אחת, On Shared Preferences Changed.
זאת אומרת, ברגע שהשירד פרפרנסס השתנו, אנחנו מקבלים את הדיווח לפונקציה הזאת. אנחנו יכולים לראות פה למעלה שביצענו אימפלמנטיישן של האינטרפייס Shared Preferences, נקודה On Shared Preferences Changed Listener.
מעולה. מה אנחנו רוצים לעשות כאשר Shared Preferences השתנה. קודם כל אנחנו רוצים לבדוק רגע איזה Shared Preferences השתנה.
אז אנחנו מקבלים את המפתח עצמו. בואו נבצע בדיקה. אם k = color אז אנחנו מעוניינים לבצע String color שווה ולקבל את ה-color החדש.
זה יהיה אובייקט ה-Shared Preferences שאנחנו מקבלים לתוך הפונקציה, נקודה getString. בעצם אנחנו מקבלים את אובייקט השארד פרפרנס הזה.
אז הוא אומר לנו איזה מפתח אתה רוצה, זה יהיה ה-Key עצמו, ומה ה-Default Value, בואו ניתן לו White. למרות שאנחנו לא צריכים, כי בטוח יש שם איזשהו ערך.
הדבר הבא שאנחנו רוצים זה לבצע איתו איזשהו שימוש. בואו ניגש ל-Linear Layout Main, Set Background Color, color.parse והנה ה-color שהוצאנו מה-shared preferences אחרי שהם השתנו.
בואו נבדוק את זה. נריץ את האפליקציה, אנחנו רואים כרגע שאין לנו בעצם מידע, אפליקציה ריקה.
בואו נכניס נתונים, מוישה, תם עשרה, רד, נבצע סייב ושימו לב שאוטומטית הצבע נצבע.
למה הצבע נצבע? כי זה התבצע כאן. קיבלנו את ההודעה שהשירד פרפרנסס השתנו וביצענו צביעה.
מה קורה אם אנחנו מבצעים סייבינג אבל השירד פרפרנסס לא באמת משתנה?