Android數據存取之Preferences

這種方式應該是用起來最簡單的Android讀寫外部數據的方法了。他的用法基本上和J2SE(java.util.prefs.Preferences)中的用法同樣,以一種簡單、 透明的方式來保存一些用戶個性化設置的字體、顏色、位置等參數信息。通常的應用程序都會提供「設置」或者「首選項」的這樣的界面,那麼這些設置最後就能夠 經過Preferences來保存,而程序員不須要知道它到底以什麼形式保存的,保存在了什麼地方。固然,若是你願意保存其餘的東西,也沒有什麼限制。只是在性能上不知道會有什麼問題。java

在Android系統中,這些信息以XML文件的形式保存在 /data/data/PACKAGE_NAME/shared_prefs 目錄下。android

數據讀取程序員

String PREFS_NAME = "Note.sample.roiding.com";
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
String hello = settings.getString("hello", "Hi");性能

 

這段代碼中:
  • SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
    經過名稱,獲得一個SharedPreferences,顧名思義,這個Preferences是共享的,共享的範圍據如今同一個Package中,這裏面說所的Package和Java裏面的那個Package不一樣,貌似這裏面的Package是指在AndroidManifest.xml文件中:

http://schemas.android.com/apk/res/android"
package="com.roiding.sample.note"
android:versionCode="1"
android:versionName="1.0.0">
字體

 

這裏面的package。根據我目前的實驗結果看,是這樣的,歡迎指正。後面的那個int是用來聲明讀寫模式,先無論那麼多了,暫時就知道設爲0(android.content.Context.MODE_PRIVATE)就能夠了。code

  • boolean silent = settings.getBoolean(」silentMode」, false);
    得到一個boolean值,這裏就會看到用Preferences的好處了:能夠提供一個缺省值。也就是說若是Preference中不存在這個值的話,那麼就用後面的值做爲返回指,這樣就省去了咱們的if什麼什麼爲空的判斷。

數據寫入xml

String PREFS_NAME = "Note.sample.roiding.com";
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", true);
editor.putString("hello", "Hello~");
editor.commit();get

有了上面數據讀取的代碼,這裏面的就容易理解了,只是別忘了最後的commit();it

相關文章
相關標籤/搜索