Android 資料存放區之 SharedPreferences

來源:互聯網
上載者:User

標籤:android   style   blog   io   ar   color   sp   on   檔案   

SharedPreferences

  SharedPreferences也是一種輕型的資料存放區方式,它的本質是基於XML檔案儲存體key-value索引值對資料,通常用來儲存一些簡單的配置資訊。
  其儲存位置在/data/data/<包名>/shared_prefs目錄下。SharedPreferences對象本身只能擷取資料而不支援儲存和修改,儲存修改是通過Editor對象實現。
  實現SharedPreferences儲存的步驟如下:

 一、根據Context擷取SharedPreferences對象

 二、利用edit()方法擷取Editor對象。

 三、通過EditorObject Storage Servicekey-value索引值對資料。

 四、通過commit()方法提交資料。

  五、 SharedPreference四種操作模式:
              Context.MODE_PRIVATE:新內容覆蓋原內容
              Context.MODE_APPEND:新內容追加到原內容後
              Context.MODE_WORLD_READABLE:允許其他應用程式讀取
              Context.MODE_WORLD_WRITEABLE:允許其他應用程式寫入,會覆蓋原資料。
              
              
具體實現代碼如下:

publicclass MainActivity extends Activity {    @Override    publicvoid onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);        setContentView(R.layout.main);           //擷取SharedPreferences對象       Context ctx = MainActivity.this;              SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(ctx);       //或者指定name       //SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);    //存入資料       Editor editor = sp.edit();       editor.putString("STRING_KEY", "string");       editor.putInt("INT_KEY", 0);       editor.putBoolean("BOOLEAN_KEY", true);       editor.commit();           //返回STRING_KEY的值       Log.d("SP", sp.getString("STRING_KEY", "none"));    //如果NOT_EXIST不存在,則傳回值為"none"       Log.d("SP", sp.getString("NOT_EXIST", "none"));    }}

  這段代碼執行過後,即在/data/data/com.test/shared_prefs目錄下產生了一個SP.xml檔案,一個應用可以建立多個這樣的xml檔案:

<?xml version=‘1.0‘ encoding=‘utf-8‘ standalone=‘yes‘ ?><map> <string name="STRING_KEY">string</string> <int name="INT_KEY" value="0"/> <boolean name="BOOLEAN_KEY" value="true"/></map>


 在程式碼中,通過getXXX方法,可以方便的獲得對應Key的Value值,如果key值錯誤或者此key無對應value值,
 SharedPreferences提供了一個賦予預設值的機會,以此保證程式的健壯性。如運行結果中因為並無值為"NOT_EXIST"的Key,所以Log列印出的是其預設值:“none”。
 在訪問一個不存在key值這個過程中,並無任何異常拋出。
  SharedPreferences對象與SQLite資料庫相比,免去了建立資料庫,建立表,寫SQL語句等諸多操作,相對而言更加方便,簡潔。
  但是SharedPreferences也有其自身缺陷,比如其職能儲存boolean,int,float,long和String五種簡單的資料類型,比如其無法進行條件查詢等。
  所以不論SharedPreferences的資料存放區操作是如何簡單,它也只能是儲存方式的一種補充,而無法完全替代如SQLite資料庫這樣的其他資料存放區方式。
 
 
 

Android 資料存放區之 SharedPreferences

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.