Android之SharedPreferences工具类

转载 2016年08月29日 03:31:19

本工具类永久维护,永久更新,如果各位读者发现有bug或者不合理之处,请留言,博主将第一时间改正。


本工具类提供的功能有:

1.存储五种类型的数据;

2.读取五种类型的数据;


内容如下:

  1. import android.content.Context;  
  2. import android.content.SharedPreferences;  
  3. import android.content.SharedPreferences.Editor;  
  4.   
  5. /** 
  6.  *  
  7.  * @author bear 
  8.  *  
  9.  *         SharedPrefereces工具类 
  10.  *  
  11.  */  
  12. public class SharedPrefsUtil {  
  13.       
  14.     /** 
  15.      * 向SharedPreferences中写入int类型数据 
  16.      *  
  17.      * @param context 上下文环境 
  18.      * @param name 对应的xml文件名称 
  19.      * @param key 键 
  20.      * @param value 值 
  21.      */  
  22.     public static void putValue(Context context, String name, String key,  
  23.             int value) {  
  24.         Editor sp = getEditor(context, name);  
  25.         sp.putInt(key, value);  
  26.         sp.commit();  
  27.     }  
  28.       
  29.     /** 
  30.      * 向SharedPreferences中写入boolean类型的数据 
  31.      *  
  32.      * @param context 上下文环境 
  33.      * @param name 对应的xml文件名称 
  34.      * @param key 键 
  35.      * @param value 值 
  36.      */  
  37.     public static void putValue(Context context, String name, String key,  
  38.             boolean value) {  
  39.         Editor sp = getEditor(context, name);  
  40.         sp.putBoolean(key, value);  
  41.         sp.commit();  
  42.     }  
  43.       
  44.     /** 
  45.      * 向SharedPreferences中写入String类型的数据 
  46.      *  
  47.      * @param context 上下文环境 
  48.      * @param name 对应的xml文件名称 
  49.      * @param key 键 
  50.      * @param value 值 
  51.      */  
  52.     public static void putValue(Context context, String name, String key,  
  53.             String value) {  
  54.         Editor sp = getEditor(context, name);  
  55.         sp.putString(key, value);  
  56.         sp.commit();  
  57.     }  
  58.       
  59.     /** 
  60.      * 向SharedPreferences中写入float类型的数据 
  61.      *  
  62.      * @param context 上下文环境 
  63.      * @param name 对应的xml文件名称 
  64.      * @param key 键 
  65.      * @param value 值 
  66.      */  
  67.     public static void putValue(Context context, String name, String key,  
  68.             float value) {  
  69.         Editor sp = getEditor(context, name);  
  70.         sp.putFloat(key, value);  
  71.         sp.commit();  
  72.     }  
  73.   
  74.     /** 
  75.      * 向SharedPreferences中写入long类型的数据 
  76.      *  
  77.      * @param context 上下文环境 
  78.      * @param name 对应的xml文件名称 
  79.      * @param key 键 
  80.      * @param value 值 
  81.      */  
  82.     public static void putValue(Context context, String name, String key,  
  83.             long value) {  
  84.         Editor sp = getEditor(context, name);  
  85.         sp.putLong(key, value);  
  86.         sp.commit();  
  87.     }  
  88.       
  89.     /** 
  90.      * 从SharedPreferences中读取int类型的数据 
  91.      *  
  92.      * @param context 上下文环境 
  93.      * @param name 对应的xml文件名称 
  94.      * @param key 键 
  95.      * @param defValue 如果读取不成功则使用默认值 
  96.      * @return 返回读取的值 
  97.      */  
  98.     public static int getValue(Context context, String name, String key,  
  99.             int defValue) {  
  100.         SharedPreferences sp = getSharedPreferences(context, name);  
  101.         int value = sp.getInt(key, defValue);  
  102.         return value;  
  103.     }  
  104.       
  105.     /** 
  106.      * 从SharedPreferences中读取boolean类型的数据 
  107.      *  
  108.      * @param context 上下文环境 
  109.      * @param name 对应的xml文件名称 
  110.      * @param key 键 
  111.      * @param defValue 如果读取不成功则使用默认值 
  112.      * @return 返回读取的值 
  113.      */  
  114.     public static boolean getValue(Context context, String name, String key,  
  115.             boolean defValue) {  
  116.         SharedPreferences sp = getSharedPreferences(context, name);  
  117.         boolean value = sp.getBoolean(key, defValue);  
  118.         return value;  
  119.     }  
  120.       
  121.     /** 
  122.      * 从SharedPreferences中读取String类型的数据 
  123.      *  
  124.      * @param context 上下文环境 
  125.      * @param name 对应的xml文件名称 
  126.      * @param key 键 
  127.      * @param defValue 如果读取不成功则使用默认值 
  128.      * @return 返回读取的值 
  129.      */  
  130.     public static String getValue(Context context, String name, String key,  
  131.             String defValue) {  
  132.         SharedPreferences sp = getSharedPreferences(context, name);  
  133.         String value = sp.getString(key, defValue);  
  134.         return value;  
  135.     }  
  136.       
  137.     /** 
  138.      * 从SharedPreferences中读取float类型的数据 
  139.      *  
  140.      * @param context 上下文环境 
  141.      * @param name 对应的xml文件名称 
  142.      * @param key 键 
  143.      * @param defValue 如果读取不成功则使用默认值 
  144.      * @return 返回读取的值 
  145.      */  
  146.     public static float getValue(Context context, String name, String key,  
  147.             float defValue) {  
  148.         SharedPreferences sp = getSharedPreferences(context, name);  
  149.         float value = sp.getFloat(key, defValue);  
  150.         return value;  
  151.     }  
  152.       
  153.     /** 
  154.      * 从SharedPreferences中读取long类型的数据 
  155.      *  
  156.      * @param context 上下文环境 
  157.      * @param name 对应的xml文件名称 
  158.      * @param key 键 
  159.      * @param defValue 如果读取不成功则使用默认值 
  160.      * @return 返回读取的值 
  161.      */  
  162.     public static long getValue(Context context, String name, String key,  
  163.             long defValue) {  
  164.         SharedPreferences sp = getSharedPreferences(context, name);  
  165.         long value = sp.getLong(key, defValue);  
  166.         return value;  
  167.     }  
  168.       
  169.     //获取Editor实例  
  170.     private static Editor getEditor(Context context, String name) {  
  171.         return getSharedPreferences(context, name).edit();  
  172.     }  
  173.   
  174.     //获取SharedPreferences实例  
  175.     private static SharedPreferences getSharedPreferences(Context context, String name) {  
  176.         return context.getSharedPreferences(name, Context.MODE_PRIVATE);  
  177.     }  
  178. }  

如果你的工程支持版本信息Android API Level >= 11,那么你还可以加入Set<String>类型的存储和读取。


在Activity或者其他的地方调用方式举例如下:

  1. //存储数据,在MySetting文件中存储键值对("color","red")  
  2. SharedPrefsUtil.putValue(this"MySetting""color""red");  
  1. //读取数据,从MySetting文件中读取键为"color"的值  
  2. String color = SharedPrefsUtil.getValue(this"MySetting""color""blue"); 

Android中的SharedPreferences存储数据方式(工具类)

1.概述。SharePreferences是用来存储一些简单配置信息的一种机制,使用Map数据结构来存储数据,以键值对的方式存储,采用了XML格式将数据存储到设备中。例如保存登录用户的用户名和密码。只...

android框架搭建——封装一个属于自己的数据存储工具类(sharedPreferences篇)

之前的几篇博文中提到过封装网络工具类,那么在发送请求并获取一个JSONObject对象之后,如何便捷的进行json解析和数据存储便成了我们要考虑的问题,在此分享一下自己在使用了诸多工具之后的一点心得。...

Android开发-数据存储SharedPreferences工具类、Set<String>保存问题、源码分析

介绍SharedPreferences作为Android提供给我们方便简单的存储数据的类。它内部的实现实际上是xml格式的文件存储数据,同时为了提升读写性能同时实现了内存缓存机制。关键源码在andro...

Android 分享一个SharedPreferences的工具类,方便保存数据

[java] view plain copy   package com.example.shortcut;   import android.content.Context;   imp...
  • aicpzl
  • aicpzl
  • 2016年04月18日 10:42
  • 807

Android SharedPreferences的工具类

分享了xiaanming博客的一个工具类 SharedPreferences的工具类: 代码: package com.example.shortcut; import andr...

Android中SharedPreferences 工具类的使用

该工具类属于SharedPreferences 轻量级存储的使用,主要用于存储简单的信息,直接可以调用, 使用方法是: //存储数据 SPUtils .pet(上下文,key,values); ...

Android SharedPreferences工具类 ,实现List/Map的保存读取

封装SharedPreferences工具类,实现快速保存读取Integer,String,Float,Long,Boolean,Object以及List以及Map...

Android工具类之SharedPreferences统一管理类

/** * SharedPreferences统一管理类 */ public class SPUtil { /** * 保存在手机里面的文件名(自定义) */ ...

Android 中创建SharedPreferences工具类来保存状态,标志,数据等

public class CacheUtils { private final static String SP_NAME = “xsy”; private st...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android之SharedPreferences工具类
举报原因:
原因补充:

(最多只允许输入30个字)