安卓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<String,Object> 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 = 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;

}

这个方法是取值,然后我们只是取出来的是Object类型,因为所有的数据类型基于Object嘛

所以我们到时候用到的时候直接取出来就好了,当然,我们取的是什么东东我们自己有逼数,转换一下就好了,转换工具我就不展示了

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容