SharePreference封装成工具类

来源:互联网 发布:制衣打飞软件 编辑:程序博客网 时间:2024/06/16 04:48

Android开发中经常需要保存一些用户配置信息,一般都会保存在SharePreference当中。

但是每次都用getSharedPreferences太麻烦了。


我在项目中对SharePreference的频率操作封装在一个类中。

在使用时不需要传入Context和key,保存的时候只需要传入值,获取时不需要传入key。

/** * SharePreference基类 * 这里只写了对最常用的三种基本数据类型的操作。 */public class BasePreference {    private Context context;    private SharedPreferences sp;    private SharedPreferences.Editor editor;    private String FILE_NAME = "userinfo";    protected BasePreference(Context context) {        this.context = context;        sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);    }    protected void setString(String key, String value) {        sp.edit().putString(key, value).apply();    }    protected String getString(String key) {        return sp.getString(key, null);    }    protected void setBoolean(String key, boolean value) {        sp.edit().putBoolean(key, value).apply();    }    protected boolean getBoolean(String key) {        return sp.getBoolean(key, false);    }    protected void setInt(String key, int value) {        sp.edit().putInt(key, value).apply();    }    protected int getInt(String key) {        return sp.getInt(key, 0);    }}

然后创建一个子类,实现此基类

/** * 具体实现sp * Created by Dujuncan on 2016/10/30. */public class PreferenceUtils extends BasePreference {    private static PreferenceUtils preferenceUtils;    /**     * 需要增加key就在这里新建     */    //用户名的key    private String USER_NAME = "user_name";    //是否首次启动的key    private String FIRST_LAUNCH = "first_launch";    private PreferenceUtils(Context context) {        super(context);    }    /**     * 这里我通过自定义的Application来获取Context对象,所以在获取preferenceUtils时不需要传入Context。     * @return     */    public synchronized static PreferenceUtils getInstance() {        if (null == preferenceUtils) {            preferenceUtils = new PreferenceUtils(MyApplication.getInstance());        }        return preferenceUtils;    }    public void setFirstLaunch(boolean isFirst) {        setBoolean(FIRST_LAUNCH,isFirst);    }    public boolean getFirstlaunch() {        return getBoolean(FIRST_LAUNCH);    }    public void setUserName(String name) {        setString("fefe", name);    }    public String getUSER_NAME_KEY() {        return getString(USER_NAME);    }}

最后在Activity中使用

        PreferenceUtils preferenceUtils = PreferenceUtils.getInstance();        preferenceUtils.setFirstLaunch(true);        String userName = preferenceUtils.getUserName();



1 0
原创粉丝点击