这个工具的封装是采用单列模式,将类本身进行实例化,在构造方法里面进行SharePreference初始化,然后在saveData方法中进行数据保存,然后调用commi()进行数据保存,代码如下:
public class SPUtil {
private SharedPreferences.Editoreditor;
private static SPUtilsInstance;
public static SPUtilgetInstance() {
synchronized (SPUtil.class) {
if (sInstance ==null) {
sInstance =new SPUtil();
}
}
return sInstance;
}
public SPUtil() {
editor =getApplicationContext().getSharedPreferences("user", MODE_PRIVATE).edit();
}
private static final StringTAG ="SPUtil";
public SPUtilsaveSPData(Map value) {
for (Map.Entry vo : value.entrySet()) {
Log.i(TAG, "saveSPData: " + vo.getValue().getClass().toString());
System.out.println(vo.getValue().getClass().toString());
switch (vo.getValue().getClass().toString()) {
//整型
case "class java.lang.Integer":
editor.putInt(vo.getKey(), Integer.valueOf(vo.getValue().toString()));
break;
//布尔型
case "class java.lang.Boolean":
editor.putBoolean(vo.getKey(), Boolean.valueOf(vo.getValue().toString()));
break;
//字符串型
case "class java.lang.String":
editor.putString(vo.getKey(), vo.getValue().toString());
break;
//浮点型
case "class java.lang.Float":
editor.putFloat(vo.getKey(), Float.valueOf(vo.getValue().toString()));
break;
}
}
return sInstance;
}
public void save() {
editor.apply();
}
}
使用方法如下:

是不是很简单啊,一行代码搞定
还可以进行多种数据的保存。
Github地址: https://github.com/xyj155/SPUtil
网友评论