SharedPreference是Android中的儲存資料機制,使用者離開APP後資料都還會留著,下次開啟APP時直接續用,常見的用途像是儲存偏好設定值、登入的帳密。
SharedPreference用Key-Value的方式儲存,可以存字串整數布林等不同型態的資料,使用起來也只要一兩行程式,讓我相當擔心今天的篇幅過短,但這麼常用的機制還是越短越好啦。
透過PreferenceManager取得SharePreference後,直接設置Key和預設Value
// 取得SharedPreference
SharedPreferences getPrefs = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
// 建立一個Key名稱為version的資料,預設值為0
getPrefs.getInt("version", 0);
跟建立的方式一樣,前面宣告一個變數去接就可以了
// 取得SharedPreference
SharedPreferences getPrefs = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
// 取得Key名稱為version的資料
int mVersion = getPrefs.getInt("version", 0);
若您未曾編輯過此資料,則會讀取到預設值0,若已經編輯成別的數字了,即便這裡一樣寫預設值0也會讀到新的數字,不用擔心會被蓋掉。
用SharedPreference的Editor來編輯,記得編完要apply()才會生效哦
// 取得SharedPreference
SharedPreferences getPrefs = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
// 取得Editor
SharedPreferences.Editor editor = getPrefs.edit();
// 將version的值設為1
editor.putInt("version", 1);
// 套用變更,一定要apply才會生效哦
editor.apply();
用Editor中的remove方式,參數輸入要刪除的Key值
// 取得SharedPreference
SharedPreferences getPrefs = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
// 取得Editor
SharedPreferences.Editor editor = getPrefs.edit();
// 移除version
editor.remove("version");
// 套用變更
editor.apply();
沒..沒了..
SharedPreference使用起來真的很簡便,如開頭所說很適合儲存偏好設定和登入資訊。但當資料量大或有關連性時就會比較不敷使用,這時選擇Android另一個資料儲存機制「SQLite資料庫」會更適合,也是我們明天要寫的主題哦