SharedPreferences介紹

SharedPreferences介紹:
 

做軟件開發應該都知道,很多軟件會有配置文件,裏面存放這程序運行當中的各個屬性值,由於其配置信息並不多,如果採用數據庫來存放並不划算,因爲數據庫連接跟操作等耗時大大影響了程序的效率,因此我們使用鍵值這種一一對應的關係來存放這些配置信息。SharedPreferences正是Android中用於實現這中存儲方式的技術。

 

SharedPreferences的使用非常簡單,能夠輕鬆的存放數據和讀取數據。SharedPreferences只能保存簡單類型的數據,例如,String、int等。一般會將複雜類型的數據轉換成Base64編碼,然後將轉換後的數據以字符串的形式保存在 XML文件中,再用SharedPreferences保存。

 
    使用SharedPreferences保存key-value對的步驟如下:

  (1)使用Activity類的getSharedPreferences方法獲得SharedPreferences對象,其中存儲key-value的文件的名稱由getSharedPreferences方法的第一個參數指定。

  (2)使用SharedPreferences接口的edit獲得SharedPreferences.Editor對象。

  (3)通過SharedPreferences.Editor接口的putXxx方法保存key-value對。其中Xxx表示不同的數據類型。例如:字符串類型的value需要用putString方法。

  (4)通過SharedPreferences.Editor接口的commit方法保存key-value對。commit方法相當於數據庫事務中的提交(commit)操作。

 

具體代碼的書寫流程爲:

 

A、存放數據信息

1、打開Preferences,名稱爲setting,如果存在則打開它,否則創建新的Preferences

SharedPreferences settings = getSharedPreferences(“setting”, 0);

2、讓setting處於編輯狀態

SharedPreferences.Editor editor = settings.edit();

3、存放數據

editor.putString(“name”,”ATAAW”);
editor.putString(“URL”,”ATAAW.COM”);

4、完成提交

editor.commit();

B、讀取數據信息

1、獲取Preferences

SharedPreferences settings = getSharedPreferences(“setting”, 0);

2、取出數據

String name = settings.getString(“name”,”默認值”);
String url = setting.getString(“URL”,”default”);

以上就是Android中SharedPreferences的使用方法,其中創建的Preferences文件存放位置可以在Eclipse中查看:

DDMS->File Explorer /<package name>/shared_prefs/setting.xml

 

主要代碼 具體如下(僅供參考):

在onCreate方法中調用restorePrefs()方法:

 

//讀取     功能的實現
    private void restorePrefs() {
  // TODO Auto-generated method stub
     //SharedPreferences是一種輕量級的數據存儲方式.是以鍵值對來存儲應用程序的
       //配置信息的一種方式,它只能存儲基本數據類型。
     //聲明一個優先級設置 類型 settings,載入配置文件


  SharedPreferences settings = getPreferences(BMI.MODE_PRIVATE);

  //使用getXXX函數從優先級設置讀取不同類型的內容 得到優先級設置參數的內容


  String pref_height = settings.getString(PREF_HEIGHT, "");

  //此一句爲喚醒記憶語句


   field_height.setText(pref_height);
   field_weight.requestFocus();//設置焦點字段 到“體重”字段上 用戶只需直接輸入體重數字就可以了

 }
   
    //存儲    在Activity每次變暗,也就是離開當前屏幕時,記住設置的身高值     即 存儲優先級設置
    protected void onPause()
    {
     super.onPause();
     Log.v("BMI", "onPause1");
     //獲得SharedPreferences對象


     SharedPreferences settings = getPreferences(BMI.MODE_PRIVATE);


     //獲得SharedPreferences.Editor


     SharedPreferences.Editor editor = settings.edit();


     //保存組件的值   爲優先級設置填寫不同類型的內容
     //用"field_height"界面組件標識符來取得身高的字符串 然後保存到PREF_HEIGHT所代表的優先級設置參數中


     editor.putString(PREF_HEIGHT, field_height.getText().toString());


     //提交保存的結果   將改變寫到系統中


     editor.commit();
    }


//保存用戶名
SharedPreferences preferences = getSharedPreferences("test",
Context.MODE_PRIVATE);
Editor editor = preferences.edit();


editor.putString("userName", userName);
editor.commit();


//取值的用戶名
public static String getUserName(Context context) {
//String userName = "admin";
// //獲取用戶名
SharedPreferences sharedPreference = context.getSharedPreferences("test", Context.MODE_PRIVATE);  
String UserName = sharedPreference.getString("userName", "");  

return UserName;
};


發佈了15 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章