安卓SharePreferenceUtil封装,让开发更加简单
平常我们开发APP的时候,需要存储用户登陆的时候一些数据,例如用户名,登陆头像什么的,或者一些配置信息。用数据库保存嘛,又麻烦,大部分选择用SP保存。然后我现在介绍一下我平常封装的SPUtil,上代码:
public class SPUtil {前面几句就是获取当前APP的实例
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();
}
}
然后看后面,我用了泛型绑定,因为我 不知道用户会放入什么类型的东西,可能是int,也可能是float,很多很多,而你要做的就是把他们都存进去,然后我觉得Sring类型是最好的存储方式,因此我选择了toString方法
Iterater是迭代器,用户循环输出的,选择他是因为我不要写繁琐的for循环。将值一个一个取出来就ok了。然后存到sp里面,就完成任务了,然后取值嘛,看下面:
public ObjectgetSPValue(String key){【安卓SharePreferenceUtil封装,让开发更加简单】这个方法是取值,然后我们只是取出来的是Object类型,因为所有的数据类型基于Object嘛
SharedPreferences sp=getInstance().getSharedPreferences("user",Context.MODE_PRIVATE);
Map all = sp.getAll();
Object object = all.get(key);
return object;
}
所以我们到时候用到的时候直接取出来就好了,当然,我们取的是什么东东我们自己有逼数,转换一下就好了,转换工具我就不展示了
推荐阅读
- 2020-04-07vue中Axios的封装和API接口的管理
- 基于|基于 antd 风格的 element-table + pagination 的二次封装
- python自定义封装带颜色的logging模块
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- jQuery插件
- 使用Promise对微信小程序wx.request请求方法进行封装
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- vue.js|vue中使用axios封装成request使用
- 打死都不会用安卓手机(试用两天之后(嗯,真香!))
- 笔记|如何在Windows11安装安卓子系统()