Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> SharedPreferences 的用法

SharedPreferences 的用法

編輯:關於Android編程

SharedPreferences 的用法

2個activity 之間的數據傳遞除了可以他通過intent來傳遞,還可以使用SharedPreferences來共享數據的方式

SharedPreferences 用法很簡單.

在A中

設置

   

Java代碼 

1. Editor sharedata = getSharedPreferences("data", 0).edit();  

2.    sharedata.putString("item","hello getSharedPreferences");  

3.    sharedata.commit(); 

Editor sharedata = getSharedPreferences("data", 0).edit();

   sharedata.putString("item","hello getSharedPreferences");

   sharedata.commit();

 

B中獲取

Java代碼 

1. SharedPreferences sharedata = getSharedPreferences("data", 0);  

2. String data = sharedata.getString("item", null);  

3. Log.v("cola","data="+data); 

SharedPreferences sharedata = getSharedPreferences("data", 0);

String data = sharedata.getString("item", null);

Log.v("cola","data="+data);

 

Android數據存取之Preferences

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

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

數據讀取


Java代碼 

1. String PREFS_NAME = "Note.sample.roiding.com";   

2.  

3. SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);   

4.  

5. boolean silent = settings.getBoolean("silentMode", false);   

6.  

7. String hello = settings.getString("hello", "Hi");   

      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"); 

 

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文件中:


Xml代碼 

1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"   

2. package="com.roiding.sample.note"   

3. android:versionCode="1"   

4. android:versionName="1.0.0">   

      <manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="com.roiding.sample.note"

      android:versionCode="1"

      android:versionName="1.0.0"> 

 

<manifest xmlns:android="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)就可以了。

· boolean silent = settings.getBoolean(”silentMode”, false);
獲得一個boolean值,這裡就會看到用Preferences的好處了:可以提供一個缺省值。也就是說如果Preference中不存在這個值的話,那麼就用後面的值作為返回指,這樣就省去了我們的if什麼什麼為空的判斷。

數據寫入


Java代碼 

1. String PREFS_NAME = "Note.sample.roiding.com";   

2. SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);   

3. SharedPreferences.Editor editor = settings.edit();   

4. editor.putBoolean("silentMode", true);   

5. editor.putString("hello", "Hello~");   

6. editor.commit();  

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();

 

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();

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


注意:

訪問接口和優先修改數據,並由getSharedPreferences(String,int)返回數據,為了統一設置參數,有一個單例類供所有的客戶端共享.修改參數必須通過一個SharedPreferences.Editor對象,在存儲他們時,以確保參數值有統一的狀態和控制
目前此類不支持多線程,


 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved