android中sharedPreferences的用法

來源:互聯網
上載者:User

標籤:android   使用   os   檔案   資料   re   

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是一種輕量級的資料存放區方式.是以索引值對來儲存應用程式的
       //配置資訊的一種方式,它只能儲存基礎資料型別 (Elementary Data Type)。
     //聲明一個優先順序設定 類型 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();
    }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.