[聚合文章] SharePreferencesHelper 工具类

.Net 2017-12-19 26 阅读
//首选项帮助类, 提供了保存和获取首选项的功能.public class SharePreferencesHelper {    private static SimpleArrayMap<String, SharePreferencesHelper> spArray = new SimpleArrayMap<String, SharePreferencesHelper>();    private static SharedPreferences sp;    public static SharePreferencesHelper getInstance(Context context) {        return getInstance(context, "");    }    public static SharePreferencesHelper getInstance(Context context, String spName) {        if (TextUtils.isEmpty(spName)) spName = "default_spUtil";        SharePreferencesHelper spUtil = spArray.get(spName);        if (spUtil == null) {            spUtil = new SharePreferencesHelper(context, spName);            spArray.put(spName, spUtil);        }        return spUtil;    }    private SharePreferencesHelper(Context context, String spName) {        sp = context.getSharedPreferences(spName, Context.MODE_PRIVATE);    }    public  void putString(@NonNull String key, Object value) {        applyValue(key, value);    }    public  void putBoolean(@NonNull String key, Object value) {        applyValue(key, value);    }    public  void putInt(@NonNull String key, Object value) {        applyValue(key, value);    }    public  void putObject(@NonNull String key, Object value) {        applyValue(key, value);    }    public  boolean syncPutString(@NonNull String key, Object value) {        return commitValue(key, value);    }    public  boolean syncPutBoolean(@NonNull String key, Object value) {        return commitValue(key, value);    }    public  boolean syncPutInt(@NonNull String key, Object value) {        return commitValue(key, value);    }    public  boolean syncPutObject(@NonNull String key, Object value) {        return commitValue(key, value);    }        public String getString(@NonNull final String key) {        return getString(key, "");    }    public String getString(@NonNull final String key, @NonNull final String defaultValue) {        return sp.getString(key, defaultValue);    }    public int getInteger(@NonNull final String key, final int defaultValue) {        return sp.getInt(key, defaultValue);    }    public Boolean getBoolean(@NonNull final String key) {        return sp.getBoolean(key, false);    }    private  boolean commitValue(@NonNull String key, Object value) {        SharedPreferences.Editor editor = saveData(key, value);        //断言, 当值 true 的时候才会向下执行.        assert editor != null;        return editor.commit();    }    private  void applyValue(@NonNull String key, Object value) {        SharedPreferences.Editor editor = saveData(key, value);        //断言, 当值为 true 的时候才会向下执行.        assert editor != null;        editor.apply();    }    public  boolean containKey(@NonNull String key) {        return sp.contains(key);    }    public  void clearAll(){        sp.edit().clear().apply();    }    public  void removeForKey(@NonNull final String key) {        sp.edit().remove(key).apply();    }    private  SharedPreferences.Editor saveData(String key, Object value) {        SharedPreferences.Editor edit;        if (value != null) {            edit = sp.edit();            if (value instanceof String) {                edit.putString(key, (String) value);            } else if (value instanceof Boolean) {                edit.putBoolean(key, (Boolean) value);            } else if (value instanceof Integer) {                edit.putInt(key, (Integer) value);            } else {                edit.putString(key, String.valueOf(value));            }            return edit;        }
                

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。