Android中SharedPreferences用法


1.SharedPreferences簡介

為了保存軟件的設置參數,Android 平台為我們提供了一個SharedPreferences 類,它是一個輕量級的存儲類,特別適合用於保存軟件配置參數。使用SharedPreferences 保存數據,其背后是用xml文件存放數據,文件存放在/data/data/<package name>/shared_prefs 目錄下。

2.獲取SharedPreferences對象方法:

SharedPreferences pre = Context.getSharedPreferences(String name,int mode);

注:name為本組件的配置文件名(如果想要與本應用程序的其他組件共享此配置文件,可以用這個名字來檢索到這個配置文件,在這里要特別注意,因為在Android 中已經確定了SharedPreferences 是以xml形式保存,所以,在填寫文件名參數時,不要給定“.xml”后綴,android會自動添加。只要直接寫上文件名即可。它會直接被保存在/data/data/<package name>/shared_prefs路徑下,它是采用鍵值對的形式保存參數。當你需要獲得某個參數值時,按照參數的鍵索引即可)。

SharedPreferences pre = Activity.getPreferences(int mode);

注:配置文件僅可以被調用的Activity使用。mode為操作模式,默認的模式為0或MODE_PRIVATE,還可以使用MODE_APPEND、MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。

SharedPreferences pre = PreferenceManager.getDefaultSharedPreferences(Context);

注:每個應用都有一個默認的配置文件preferences.xml,使用getDefaultSharedPreferences獲取。

3.SharedPreferences使用步驟:

SharedPreferences使用非常簡單,能夠輕松地存放數據和讀取數據。SharedPreferences只能保存簡單類型的數據,例如:String、int等。一般會將復雜類型的數據轉換成Base64編碼,然后將轉換后的數據以字符串的形式保存在XML文件中,再用SharedPreferences保存。

使用SharedPreferences保存key-value對的步驟如下:

1)獲得SharedPreferences對象

2)獲得SharedPreferences.Editor對象。

3)通過SharedPreferences.Editor接口的putXxx()方法存放key-value對(其中Xxx表示不同的數據類型。如:字符串類型的value需要用putString()方法)。

4)通過SharedPreferences.Editor接口的commit()方法保存key-value對(commit方法相當於數據庫事務中的提交(commit)操作)。

4.存儲數據和讀取數據的流程:

存儲數據信息

1)打開名為configuration的配置文件,如果存在則打開它,否則創建新的名為configuration的配置文件

SharedPreferences  sharedPreferences = getSharedPreferences("configuration", 0);

2)讓sharedPreferences處於編輯狀態

SharedPreferences.Editor  editor  =  sharedPreferences.edit();

3)存放數據

editor.putString("name","harvey");

4)完成提交

editor.commit();

讀取數據信息

1)打開名為configuration的配置文件

SharedPreferences  sharedPreferences = getSharedPreferences("configuration", 0);

2)獲取數據

String name = sharedPreferences.getString("name","默認值");

以上就是Android中SharedPreferences的使用方法,其中創建的配置文件存放位置可以在Eclipse中查看:

DDMS --- File Explorer --- data/data/<package name>/shared_prefs/configuration.xml


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM