安卓SharePreferenceUtil封装,让开发更加简单

平常我们开发APP的时候,需要存储用户登陆的时候一些数据,例如用户名,登陆头像什么的,或者一些配置信息。用数据库保存嘛,又麻烦,大部分选择用SP保存。然后我现在介绍一下我平常封装的SPUtil,上代码:


public class SPUtil {
public static Appapp;
public ContextgetInstance() {
if (app ==null) {
return App.getInstance().getApplicationContext();
}
return app.getApplicationContext();
}
public void saveUserInfor(Map values) {
SharedPreferences.Editor editor = getInstance().getSharedPreferences("user", Context.MODE_PRIVATE).edit();
Iterator it = values.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
String key = entry.getKey().toString();
String value = https://www.it610.com/article/entry.getValue().toString();
editor.putString(key, value);
}
editor.apply();
}
}
前面几句就是获取当前APP的实例
然后看后面,我用了泛型绑定,因为我 不知道用户会放入什么类型的东西,可能是int,也可能是float,很多很多,而你要做的就是把他们都存进去,然后我觉得Sring类型是最好的存储方式,因此我选择了toString方法
Iterater是迭代器,用户循环输出的,选择他是因为我不要写繁琐的for循环。将值一个一个取出来就ok了。然后存到sp里面,就完成任务了,然后取值嘛,看下面:
public ObjectgetSPValue(String key){
SharedPreferences sp=getInstance().getSharedPreferences("user",Context.MODE_PRIVATE);
Map all = sp.getAll();
Object object = all.get(key);
return object;
}
【安卓SharePreferenceUtil封装,让开发更加简单】这个方法是取值,然后我们只是取出来的是Object类型,因为所有的数据类型基于Object嘛
所以我们到时候用到的时候直接取出来就好了,当然,我们取的是什么东东我们自己有逼数,转换一下就好了,转换工具我就不展示了

    推荐阅读