SharedPreferences簡介
-
SharedPreferences是Android平臺上一個輕量級的儲存輔助類,用來儲存應用的一些常用配置。SharedPreferences的資料以鍵值對(key, val)的進行儲存在以xml形式的檔案中。在應用中通常做一些簡單資料的持久化快取
-
從editor的put方法可以看出SharedPreferences提供了String,set,int,long,float,boolean六種資料型別,editor類核心方法:
-
getSharedPreferences(String name, int mode)
:- 引數解析:
- name:儲存檔案名字
- mode:儲存方式;取值如下:
- Context.MODE_PRIVATE:指定該SharedPreferences資料只能被本應用程式讀、寫
- Context.MODE_WORLD_READABLE:指定該SharedPreferences資料能被其他應用程式讀,但不能寫
- Context.MODE_WORLD_WRITEABLE:指定該SharedPreferences資料能被其他應用程式寫,但不能讀
- Context.MODE_APPEND:該模式會檢查檔案是否存在,存在就往檔案追加內容,否則就建立新檔案
- 引數解析:
SharedPreferences使用
增加資料
-
程式碼例項:
//透過對應儲存檔名得到要操作的SharedPreferences物件 SharedPreferences sharedPreferences = getSharedPreferences("user",MODE_PRIVATE); //獲取Editor物件的引用 SharedPreferences.Editor editor = sharedPreferences.edit(); //將值以鍵值對(key, val)格式放入檔案 editor.putString("name", "lucas"); editor.putInt("age", 30); editor.putBoolean("islogin",true); // 提交資料 editor.commit();
-
點選新增按鈕以後我們可以看到在
data/data/應用程式包名/shared_prefs
資料夾下生成了一個user.xml
的xml檔案。點選可以開啟該檔案,可以看到該檔案儲存瞭如下的資料<?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <string name="name">lucas</string> <int name="age" value="30" /> <boolean name="islogin" value="true" /> </map>
-
效果展示
讀取資料
-
讀取資料可以透過獲取
SharedPreferences
物件,透過SharedPreferences
物件可以獲取儲存的資料值,第二個引數一般是個預設值,表示當獲取資料的時候沒有該key則返回一個預設值SharedPreferences sharedPreferences = getSharedPreferences("user", MODE_PRIVATE); String name = sharedPreferences.getString("name",""); int age = sharedPreferences.getInt("age",0); boolean islogin = sharedPreferences.getBoolean("islogin",true); Log.i("lucashu","name:"+ name +" age:" + age +" islogin:" + islogin);
刪除資料
-
刪除資料跟增加資料有點類似 也是透過
Editor
物件來完成//透過對應儲存檔名得到要操作的SharedPreferences物件 SharedPreferences sharedPreferences = getSharedPreferences("user",MODE_PRIVATE); //獲取Editor物件的引用 SharedPreferences.Editor editor = sharedPreferences.edit(); //刪除key對應的值 editor.remove("name"); // 提交資料 editor.commit();
修改資料
-
修改資料跟增加資料類似,覆蓋原來的資料即修改資料。
//透過對應儲存檔名得到要操作的SharedPreferences物件 SharedPreferences sharedPreferences = getSharedPreferences("user",MODE_PRIVATE); //獲取Editor物件的引用 SharedPreferences.Editor editor = sharedPreferences.edit(); //將新的值放入要修改資料對應的key進行覆蓋 editor.putString("name", "lucas1"); editor.putInt("age", 31); editor.putBoolean("islogin",false); // 提交資料 editor.commit();
清除資料
-
可以透過
Editor
物件的clear方法來完成清除資料//透過對應儲存檔名得到要操作的SharedPreferences物件 SharedPreferences sharedPreferences = getSharedPreferences("user", MODE_PRIVATE); //獲取Editor物件的引用 SharedPreferences.Editor editor = sharedPreferences.edit(); editor.clear(); // 提交資料 editor.commit();
-
清除以後
user.xml
檔案並不會刪除,但裡面的資料都沒了