極力推薦文章:歡迎收藏
Android 乾貨分享 java
本篇文章主要介紹 Android
開發中的部分知識點,經過閱讀本篇文章,您將收穫如下內容:android
- SharedPreferences的使用方法
- SharedPreferences保存數據的方法
- SharedPreferences讀取數據的方法
- 總結SharedPreferencesUtils 封裝類使用方法
- 小結
SharedPreferences
是Android
的一個接口類,是Android
數據存儲(保存內部)的一種方法。主要以*.xml
的形式保存在Android /data/data/com.***包名/shared_prefs
下,SharedPreferences
類提供了一個通用框架,以便用戶可以保存和檢索原始數據類型的鍵值對,原始數據類型以下:Boolean
,Int
,Float
,Long
,String
。程序員
SharedPreferences
使用方法以下:微信
xml
文件Editor
向xml
文件中保存數據 commit()
保存數據xml
保存地方 /data/data/com.***包名/shared_prefs
主要使用 putBoolean()
和 putString()
、putInt()
等方法添加值。app
主要使用 getBoolean()
和 getString()
、getInt()
等 獲取保存的數據框架
SharePerference
保存的值private static SharedPreferences sp; private static String SPXMLNAME = "sp_config"; /** * @param ctx * 上下文環境 * @param key * 要從config.xml移除節點的name的名稱 */ public static void removeKey(Context ctx, String key) { if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } sp.edit().remove(key).commit(); }
// 1,存儲boolean變量方法 public static void putBoolean(Context ctx, String key, boolean value) { // name存儲文件名稱 if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } sp.edit().putBoolean(key, value).commit(); } // 2,讀取boolean變量方法 public static boolean getBoolean(Context ctx, String key, boolean defValue) { // name存儲文件名稱 if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } return sp.getBoolean(key, defValue); }
String
類型值方法public static void putString(Context ctx, String key, String value) { // name存儲文件名稱 if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } sp.edit().putString(key, value).commit(); } public static String getString(Context ctx, String key, String defValue) { // name存儲文件名稱 if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } return sp.getString(key, defValue); }
Int
類型值方法// public static void putInt(Context ctx, String key, int value) { // name存儲文件名稱 if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } sp.edit().putInt(key, value).commit(); } public static int getInt(Context ctx, String key, int defValue) { // name存儲文件名稱 if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } return sp.getInt(key, defValue); }
package com.programandroid.Utils; import android.content.Context; import android.content.SharedPreferences; /* * SharePerferenceUtils.java * * Created on: 2017-9-24 * Author: wangjie * * Welcome attention to weixin public number get more info * * WeiXin Public Number : ProgramAndroid * 微信公衆號 :程序員Android * */ public class SharePerferenceUtils { private static SharedPreferences sp; private static String SPXMLNAME = "sp_config"; /** * @param ctx * 上下文環境 * @param key * 要從config.xml移除節點的name的名稱 */ public static void removeKey(Context ctx, String key) { if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } sp.edit().remove(key).commit(); } // 1,存儲boolean變量方法 public static void putBoolean(Context ctx, String key, boolean value) { // name存儲文件名稱 if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } sp.edit().putBoolean(key, value).commit(); } // 2,讀取boolean變量方法 public static boolean getBoolean(Context ctx, String key, boolean defValue) { // name存儲文件名稱 if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } return sp.getBoolean(key, defValue); } public static void putString(Context ctx, String key, String value) { // name存儲文件名稱 if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } sp.edit().putString(key, value).commit(); } public static String getString(Context ctx, String key, String defValue) { // name存儲文件名稱 if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } return sp.getString(key, defValue); } // public static void putInt(Context ctx, String key, int value) { // name存儲文件名稱 if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } sp.edit().putInt(key, value).commit(); } public static int getInt(Context ctx, String key, int defValue) { // name存儲文件名稱 if (sp == null) { sp = ctx.getSharedPreferences(SPXMLNAME, Context.MODE_PRIVATE); } return sp.getInt(key, defValue); } }
保存數據調用方法以下:學習
SharePerferenceUtils.putInt(getApplicationContext(), "int_key", 1);
獲取數據調用方法以下:spa
SharePerferenceUtils.getString(getApplicationContext(), "string_key", "default_values");
至此 SharedPreferences
的使用方法以基本完成。3d
SharedPreferences
保存在app
內部(/data/data/com.***包名/shared_prefs)
,當手動清除APK
數據的時候,保存的數據會被清除掉code
至此,本篇已結束,若有不對的地方,歡迎您的建議與指正。同時期待您的關注,感謝您的閱讀,謝謝!