安卓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 = 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嘛

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

你可能感兴趣的:(安卓SharePreferenceUtil封装,让开发更加简单)