SharePreference 工具类封装
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.alibaba.fastjson.JSON;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Build;
import android.text.TextUtils;
/**
 * @ClassName: SharePreferenceUtils
 * @Description: SharePreference工具类
 * @Author:lxs
 * 
 */
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressWarnings("unchecked")
public class SharePreferenceTools {
private SharedPreferences sharedPreferences;
	private Editor editor;
	private final int ZERO = 0;
public SharePreferenceTools(Context context) {
		this(context, ConfigUtils.PREFERENCE_DEFAULT_NAME, Context.MODE_PRIVATE);
	}
public SharePreferenceTools(Context context, String preferenceName) {
		this(context, preferenceName, Context.MODE_PRIVATE);
	}
@SuppressLint("CommitPrefEdits")
	public SharePreferenceTools(Context context, String preferenceName, int mode) {
		sharedPreferences = context.getSharedPreferences(preferenceName, mode);
		editor = sharedPreferences.edit();
	}
public void putString(String key, String value) {
		if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) {
			editor.putString(key, value);
			editor.commit();
		}
	}
public String getString(String key) {
		String value = null;
		if (!TextUtils.isEmpty(key)) {
			value = sharedPreferences.getString(key, null);
		}
		return value;
	}
public String getString(String key, String defaultValue) {
		String value = null;
		if (!TextUtils.isEmpty(key)) {
			value = sharedPreferences.getString(key, defaultValue);
		}
		return value;
	}
public void putInt(String key, int value) {
		if (!TextUtils.isEmpty(key)) {
			editor.putInt(key, value);
			editor.commit();
		}
	}
public int getInt(String key) {
		int value = ZERO;
		if (!TextUtils.isEmpty(key)) {
			value = sharedPreferences.getInt(key, ZERO);
		}
		return value;
	}
public int getInt(String key, int defaultValue) {
		int value = defaultValue;
		if (!TextUtils.isEmpty(key)) {
			value = sharedPreferences.getInt(key, defaultValue);
		}
		return value;
	}
public void putBoolean(String key, boolean value) {
		if (!TextUtils.isEmpty(key)) {
			editor.putBoolean(key, value);
			editor.commit();
		}
	}
public boolean getBoolean(String key) {
		boolean result = false;
		if (!TextUtils.isEmpty(key)) {
			result = sharedPreferences.getBoolean(key, false);
		}
		return result;
	}
public boolean getBoolean(String key, boolean defaultValue) {
		boolean result = defaultValue;
		if (!TextUtils.isEmpty(key)) {
			result = sharedPreferences.getBoolean(key, defaultValue);
		}
		return result;
	}
public void putLong(String key, long value) {
		if (!TextUtils.isEmpty(key)) {
			editor.putLong(key, value);
			editor.commit();
		}
	}
public long getLong(String key) {
		long value = ZERO;
		if (!TextUtils.isEmpty(key)) {
			value = sharedPreferences.getLong(key, ZERO);
		}
		return value;
	}
public long getLong(String key, long defaultValue) {
		long value = defaultValue;
		if (!TextUtils.isEmpty(key)) {
			value = sharedPreferences.getLong(key, defaultValue);
		}
		return value;
	}
public void putFloat(String key, float value) {
		if (!TextUtils.isEmpty(key)) {
			editor.putFloat(key, value);
			editor.commit();
		}
	}
public float getFloat(String key) {
		float value = ZERO;
		if (!TextUtils.isEmpty(key)) {
			value = sharedPreferences.getFloat(key, ZERO);
		}
		return value;
	}
public float getFloat(String key, float defaultValue) {
		float value = defaultValue;
		if (!TextUtils.isEmpty(key)) {
			value = sharedPreferences.getFloat(key, defaultValue);
		}
		return value;
	}
public void putStringSet(String key, Set<String> value) {
		if (!TextUtils.isEmpty(key)) {
			editor.putStringSet(key, value);
			editor.commit();
		}
	}
public Set<String> getStringSet(String key) {
		Set<String> set = null;
		if (!TextUtils.isEmpty(key)) {
			set = sharedPreferences.getStringSet(key, null);
		}
		return set;
	}
public Set<String> getStringSet(String key, Set<String> defaultValue) {
		Set<String> set = defaultValue;
		if (!TextUtils.isEmpty(key)) {
			set = sharedPreferences.getStringSet(key, defaultValue);
		}
		return set;
	}
/**
	 * 添加对象
	 * 
	 * @param key
	 * @param t
	 */
	public <T> void putModel(String key, T t) {
		if (!TextUtils.isEmpty(key) && t != null) {
			putString(key, JSON.toJSONString(t));// fastjson
		}
	}
/**
	 * 获取对象
	 * 
	 * @param key
	 * @param t
	 * @return
	 */
	public <T> T getModel(String key, Class<T> clazz) {
		String value = null;
		if (!TextUtils.isEmpty(key)) {
			value = getString(key);
		}
		return TextUtils.isEmpty(value) ? null : JSON.parseObject(value, clazz);// fastjson
	}
/**
	 * 添加集合
	 * 
	 * @param key
	 * @param t
	 */
	public <T> void putModels(String key, List<T> t) {
		if (!TextUtils.isEmpty(key) && t != null && t.size() > ZERO) {
			putString(key, JSON.toJSONString(t));// fastjson
		}
	}
/**
	 * 获取集合
	 * 
	 * @param key
	 * @param t
	 * @return
	 */
	public <T> List<T> getModels(String key, Class<T> clazz) {
		String value = null;
		if (!TextUtils.isEmpty(key)) {
			value = getString(key);
		}
		return TextUtils.isEmpty(value) ? null : JSON.parseArray(value, clazz);// fastjson
	}
/**
	 * 查询某个key是否已经存在
	 * 
	 * @param key
	 * @return
	 */
	public boolean contains(String key) {
		return sharedPreferences.contains(key);
	}
/**
	 * 移除某个key值已经对应的值
	 * 
	 * @param key
	 */
	public void remove(String key) {
		editor.remove(key);
		editor.commit();
	}
/**
	 * 清除所有数据
	 */
	public void clear() {
		editor.clear();
		editor.commit();
	}
/**
	 * 返回所有的键值对
	 * 
	 * @return
	 */
	public Map<String, ?> getAll() {
		return sharedPreferences.getAll();
	}
/**
	 * 日志输出所有键值对
	 */
	public void selectKeyAll() {
		Map<String, Object> map = (Map<String, Object>) sharedPreferences.getAll();
		for (String key : map.keySet()) {
			Print.d("key= " + key + " and value= " + map.get(key));
		}
	}
}
SharePreference 工具类封装的更多相关文章
- 关于TornadoFx和Android的全局配置工具类封装实现及思路解析
		原文地址: 关于TornadoFx和Android的全局配置工具类封装实现及思路解析 - Stars-One的杂货小窝 目前个人开发软件存在设置页面,可以让用户自定义些设置,但我发现,存储数据的代码逻 ... 
- Redis操作Set工具类封装,Java Redis Set命令封装
		Redis操作Set工具类封装,Java Redis Set命令封装 >>>>>>>>>>>>>>>>& ... 
- Redis操作List工具类封装,Java Redis List命令封装
		Redis操作List工具类封装,Java Redis List命令封装 >>>>>>>>>>>>>>>> ... 
- Redis操作Hash工具类封装,Redis工具类封装
		Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ... 
- Redis操作字符串工具类封装,Redis工具类封装
		Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ... 
- (转载) 百度地图工具类封装(包括定位,附近、城市、范围poi检索,反地理编码)
		目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选 程序员8月书讯 项目管理+代码托管+文档协作,开发更流畅 百度地图工具类封装(包括定位,附近.城市.范围poi检索, ... 
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_40、Redis工具类封装讲解和实战
		笔记 4.Redis工具类封装讲解和实战 简介:高效开发方式 Redis工具类封装讲解和实战 1.常用客户端 https://redisdesktop.com/download ... 
- flink---实时项目--day02-----1. 解析参数工具类  2. Flink工具类封装 3. 日志采集架构图  4. 测流输出 5. 将kafka中数据写入HDFS  6 KafkaProducer的使用  7 练习
		1. 解析参数工具类(ParameterTool) 该类提供了从不同数据源读取和解析程序参数的简单实用方法,其解析args时,只能支持单只参数. 用来解析main方法传入参数的工具类 public c ... 
- Android Sqlite 工具类封装
		鉴于经常使用 Sqlite 数据库做数据持久化处理,进行了一点封装,方便使用. 该封装类主要支持一下功能 支持多用户数据储存 支持 Sqlite数据库升级 支持传入 Sql 语句建表 支持 SQLit ... 
随机推荐
- MSSQL PIVOT 实现行列转置
			create table #temp ( ProdStep varchar(40), ModuleStatus varchar(40), Cnt int ); insert into #temp va ... 
- AX7: CREATE AN AUTOMATED TEST PACKAGE\MODEL
			AX7: CREATE AN AUTOMATED TEST PACKAGE\MODEL It’s really important for a stable solution the use of a ... 
- gdb 调试程序
			要调试生成的可执行程序,必须在生成的时候加入-g选项,生成可以调试的代码 例如:gcc -o test a.c b.c -g 这样gcc就会在链接的时候加入一些用于调试的符号 在生成可以调试的可执行程 ... 
- URL特殊字符的转义
			+ 转义符为 %2B 空格 转义符为 + 或 %20 / 转义符为 %2F ? 转义符为 %3F % 转义符为 %25 # 转义符为 %23 & 转义符为 %26 = 转义符为 %3D 
- 1117 冲刺一(Day 1)
			冲刺一(第一天) 项目需求确定 现阶段我们进行的项目是到店点餐系统.主要是开发手机端app为用户提供方便快捷的点餐服务.免去顾客到店后遇到因吃饭的人太多而找不到服务人员点餐的窘境.减少了服务人员因为忙 ... 
- NSSortDescriptor对象进行数组排序
			//创建一个数组 NSArray *array = @[@"zhangsan", @"lisi", @"zhonger", @"z ... 
- LCC
			LCC: super vector: 
- iOS不用调用,running time自动执行方法
			拿友盟举例子 友盟比较好使,友盟看了他们的文档 他告诉你你要在 appdelegate didFinishLaunch方法里面写了这个东西 [UMSocialData setAppKey:@" ... 
- win10 剪贴板 拒绝访问 Cannot open clipboard
			win10 Cannot open clipboard:拒绝访问. 在RAD IDE代码编辑器中,双击选中的文本,会自动复制到剪贴板里,导致的问题是 从 A处复制文本 到B处双击选中,粘贴的时候,是B ... 
- Java命令
			java -classpath, 设定要搜索的类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有的CLASSPATH的设定. 由于所要执行的类也是要搜索的类的一部分, ... 
