W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
編寫:kesenhoo - 原文:http://developer.android.com/training/basics/data-storage/shared-preferences.html
當有一個相對較小的key-value集合需要保存時,可以使用SharedPreferences APIs。 SharedPreferences 對象指向一個保存key-value pairs的文件,并為讀寫他們提供了簡單的方法。每個 SharedPreferences 文件均由framework管理,其既可以是私有的,也可以是共享的。 這節(jié)課會演示如何使用 SharedPreferences APIs 來存儲與檢索簡單的數(shù)據(jù)。
Note: SharedPreferences APIs 僅僅提供了讀寫key-value對的功能,請不要與Preference APIs相混淆。后者可以幫助我們建立一個設(shè)置用戶配置的頁面(盡管它實際上是使用SharedPreferences 來實現(xiàn)保存用戶配置的)。更多關(guān)于Preference APIs的信息,請參考Settings 指南。
我們可以通過以下兩種方法之一創(chuàng)建或者訪問shared preference 文件:
例:下面的示例在一個 Fragment 中被執(zhí)行,它以private模式訪問名為 R.string.preference_file_key
的shared preference文件。這種情況下,該文件僅能被我們的app訪問。
Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);
應(yīng)以與app相關(guān)的方式為shared preference文件命名,該名稱應(yīng)唯一。如本例中可將其命名為 "com.example.myapp.PREFERENCE_FILE_KEY"
。
當然,當activity僅需要一個shared preference文件時,我們可以使用getPreferences()方法:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
Caution: 如果創(chuàng)建了一個MODE_WORLD_READABLE或者MODE_WORLD_WRITEABLE 模式的shared preference文件,則其他任何app均可通過文件名訪問該文件。
為了寫shared preferences
文件,需要通過執(zhí)行edit()創(chuàng)建一個 SharedPreferences.Editor。
通過類似putInt()與putString()等方法傳遞keys與values,接著通過commit() 提交改變.
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();
為了從shared preference中讀取數(shù)據(jù),可以通過類似于 getInt() 及 getString()等方法來讀取。在那些方法里面?zhèn)鬟f我們想要獲取的value對應(yīng)的key,并提供一個默認的value作為查找的key不存在時函數(shù)的返回值。如下:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), default);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: