Android -SharedPreferences

desaco發表於2016-01-22

    SharedPreferences是Android中最容易理解的資料儲存技術,實際上SharedPreferences處理的就是一個key-value(鍵值對)SharedPreferences常用來儲存一些輕量級的資料。

1、使用SharedPreferences儲存資料方法如下:

[java] view plain copy
 print?
  1. //例項化SharedPreferences物件(第一步)   
  2. SharedPreferences mySharedPreferences= getSharedPreferences("test",   
  3. Activity.MODE_PRIVATE);   
  4. //例項化SharedPreferences.Editor物件(第二步)   
  5. SharedPreferences.Editor editor = mySharedPreferences.edit();   
  6. //用putString的方法儲存資料   
  7. editor.putString("name""Karl");   
  8. editor.putString("habit""sleep");   
  9. //提交當前資料   
  10. editor.commit();   
  11. //使用toast資訊提示框提示成功寫入資料   
  12. Toast.makeText(this"資料成功寫入SharedPreferences!" , Toast.LENGTH_LONG).show();  
2、使用SharedPreferences讀取資料方法如下:

[java] view plain copy
 print?
  1. //同樣,在讀取SharedPreferences資料前要例項化出一個SharedPreferences物件   
  2. SharedPreferencessharedPreferences= getSharedPreferences("test",   
  3. Activity.MODE_PRIVATE);   
  4. // 使用getString方法獲得value,注意第2個引數是value的預設值   
  5. String name =sharedPreferences.getString("name""");   
  6. String habit =sharedPreferences.getString("habit""");   
  7. //使用toast資訊提示框顯示資訊   
  8. Toast.makeText(this"讀取資料如下:"+"\n"+"name:" + name + "\n" + "habit:" + habit,   
  9. Toast.LENGTH_LONG).show();  
3、SharedPreferences的四種操作模式:
Context.MODE_PRIVATE
Context.MODE_APPEND
Context.MODE_WORLD_READABLE
Context.MODE_WORLD_WRITEABLE
 
Context.MODE_PRIVATE:為預設操作模式,代表該檔案是私有資料,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原檔案的內容
Context.MODE_APPEND:模式會檢查檔案是否存在,存在就往檔案追加內容,否則就建立新檔案.
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應用是否有許可權讀寫該檔案.
MODE_WORLD_READABLE:表示當前檔案可以被其他應用讀取.
MODE_WORLD_WRITEABLE:表示當前檔案可以被其他應用寫入.
>Android平臺給我們提供了一個SharedPreferences類,它是一個輕量級的儲存類,特別適合用於儲存軟體配置引數。使用SharedPreferences儲存資料,其背後是用xml檔案存放資料,檔案存放在/data/data/<package name>/shared_prefs目錄下
  1. SharedPreferences sharedPreferences = getSharedPreferences("ljq", Context.MODE_PRIVATE);  
  2.   
  3. Editor editor = sharedPreferences.edit();//獲取編輯器  
  4.   
  5. editor.putString("name""desaco");  
  6.   
  7. editor.putInt("age"111);  
  8.   
  9. editor.commit();//提交修改 

  1. <?xml version='1.0' encoding='utf-8' standalone='yes' ?>  
  2.   
  3. <map>  
  4.   
  5.    <string name="name">desaco</string>  
  6.   
  7.    <int name="age" value="111" />  
  8.   
  9. </map>  

>如果不通過建立Context訪問其他應用的preference,也可以以讀取xml檔案方式直接訪問其他應用preference對應的xml檔案,如:

File xmlFile = new File("/data/data/<package name>/shared_prefs/itcast.xml");//<package name>應替換成應用的包名

相關文章