Android中的SharedPreferences
1.簡介
SharedPreferences,Android中一種應用程序內部輕量級的存儲方式,存取快且簡單,數據以鍵值對的形式存儲,鍵爲String型,值多爲基本數據類型,比如boolean,int,float,long,String等。一般會將複雜類型的數據轉換成Base64編碼,然後將轉換後的數據以字符串的形式保存在 XML文件中,再用SharedPreferences保存。使用SharedPreferences保存數據,其實質是採用了xml文件存放數據。
最常用於應用程序的配置信息存儲,也可用於應用程序間的數據共享。
2.使用方式
存數據
1 .獲取SharedPreferences對象,三種方式:
調用Context對象的getSharedPreferences()方法,
SharedPreferences pre = Context.getSharedPreferences(String name,int mode);
調用Activity對象的getPreferences()方法,
SharedPreferences pre = Activity.getPreferences(int mode);
調用應用默認的preference文件,
SharedPreferences pre =
PreferenceManager.getDefaultSharedPreferences(Context)。
前兩種方式的區別:
調用Context對象的getSharedPreferences()方法獲得的SharedPreferences對象可以被同一應用程序下的其他組件共享。
調用Activity對象的getPreferences()方法獲得的SharedPreferences對象只能在該Activity中使用。2.獲取Editor對象,即寫入器,使用SharedPreferences對象的edit()方法。
3.使用寫入器的putXxx()方法存儲鍵值對。如:putString(),putInt()。
4.使用寫入器的commit()方法保存鍵值對(相當於數據庫事務中的提交commit操作)。
取數據
1.打開指定名稱的配置文件,即獲取SharedPreferences對象。
方法同上。2.使用SharedPreferences對象的getXxx()方法由鍵名取數據。如:getString(),getInt()。
3.代碼示例:
- 存數據
SharedPreferences user=getSharedPreferences("user",Context.MODE_PRIVATE);
Editor editor=user.edit();
editor.putString("user_name", "Jack");
editor.putInt("user_age", 22);
editor.commit();
- 取數據
SharedPreferences user=getSharedPreferences("user", Context.MODE_PRIVATE);
String name=preferences.getString("user_name", "null");
int age=preferences.getInt("user_age", 0);
4.其他
方法getSharedPreferences(String name,int mode):
name:文件名。Android 已默認SharedPreferences 以xml形式保存,所以在填寫name參數時,不可加“.xml”後綴,只要直接寫上文件名即可。
mode:操作模式。默認的模式爲0或MODE_PRIVATE。SharedPreferences共四種操作模式:
Context.MODE_PRIVATE:爲默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容。
Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件。
Context.MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取。
Context.MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。
後兩種用於控制其他應用是否有權限讀寫該文件。創建的配置文件存放位置可以在Eclipse中查看:
DDMS — File Explorer — data/data//shared_prefs/user.xml未解決:
暫無。