美文网首页
SharedPreferences工具类

SharedPreferences工具类

作者: 杰奎琳子 | 来源:发表于2020-07-09 10:14 被阅读0次

public final class SPUtils {

private static SimpleArrayMapSP_UTILS_MAP =new SimpleArrayMap<>();

    private SharedPreferencessp;

    /**

* 获取SP实例

*

    * @return {@link SPUtils}

*/

    public static SPUtilsgetInstance() {

return getInstance("");

    }

/**

* 获取SP实例

*

    * @param spName sp名

    * @return {@link SPUtils}

*/

    public static SPUtilsgetInstance(String spName) {

if (isSpace(spName)) spName ="spUtils";

        SPUtils spUtils =SP_UTILS_MAP.get(spName);

        if (spUtils ==null) {

spUtils =new SPUtils(spName);

            SP_UTILS_MAP.put(spName, spUtils);

        }

return spUtils;

    }

private SPUtils(final String spName) {

sp = Utils.getApp().getSharedPreferences(spName, Context.MODE_PRIVATE);

    }

/**

* SP中写入String

*

    * @param key  键

    * @param value 值

*/

    public void put(@NonNull final String key, @NonNull final String value) {

sp.edit().putString(key, value).apply();

    }

/**

* SP中读取String

*

    * @param key 键

    * @return 存在返回对应值,不存在返回默认值{@code ""}

*/

    public StringgetString(@NonNull final String key) {

return getString(key, "");

    }

/**

* SP中读取String

*

    * @param key          键

    * @param defaultValue 默认值

    * @return 存在返回对应值,不存在返回默认值{@code defaultValue}

*/

    public StringgetString(@NonNull final String key, @NonNull final String defaultValue) {

return sp.getString(key, defaultValue);

    }

/**

* SP中写入int

*

    * @param key  键

    * @param value 值

*/

    public void put(@NonNull final String key, final int value) {

sp.edit().putInt(key, value).apply();

    }

/**

* SP中读取int

*

    * @param key 键

    * @return 存在返回对应值,不存在返回默认值-1

*/

    public int getInt(@NonNull final String key) {

return getInt(key, -1);

    }

/**

* SP中读取int

*

    * @param key          键

    * @param defaultValue 默认值

    * @return 存在返回对应值,不存在返回默认值{@code defaultValue}

*/

    public int getInt(@NonNull final String key, final int defaultValue) {

return sp.getInt(key, defaultValue);

    }

/**

* SP中写入long

*

    * @param key  键

    * @param value 值

*/

    public void put(@NonNull final String key, final long value) {

sp.edit().putLong(key, value).apply();

    }

/**

* SP中读取long

*

    * @param key 键

    * @return 存在返回对应值,不存在返回默认值-1

*/

    public long getLong(@NonNull final String key) {

return getLong(key, -1L);

    }

/**

* SP中读取long

*

    * @param key          键

    * @param defaultValue 默认值

    * @return 存在返回对应值,不存在返回默认值{@code defaultValue}

*/

    public long getLong(@NonNull final String key, final long defaultValue) {

return sp.getLong(key, defaultValue);

    }

/**

* SP中写入float

*

    * @param key  键

    * @param value 值

*/

    public void put(@NonNull final String key, final float value) {

sp.edit().putFloat(key, value).apply();

    }

/**

* SP中读取float

*

    * @param key 键

    * @return 存在返回对应值,不存在返回默认值-1

*/

    public float getFloat(@NonNull final String key) {

return getFloat(key, -1f);

    }

/**

* SP中读取float

*

    * @param key          键

    * @param defaultValue 默认值

    * @return 存在返回对应值,不存在返回默认值{@code defaultValue}

*/

    public float getFloat(@NonNull final String key, final float defaultValue) {

return sp.getFloat(key, defaultValue);

    }

/**

* SP中写入boolean

*

    * @param key  键

    * @param value 值

*/

    public void put(@NonNull final String key, final boolean value) {

sp.edit().putBoolean(key, value).apply();

    }

/**

* SP中读取boolean

*

    * @param key 键

    * @return 存在返回对应值,不存在返回默认值{@code false}

*/

    public boolean getBoolean(@NonNull final String key) {

return getBoolean(key, false);

    }

/**

* SP中读取boolean

*

    * @param key          键

    * @param defaultValue 默认值

    * @return 存在返回对应值,不存在返回默认值{@code defaultValue}

*/

    public boolean getBoolean(@NonNull final String key, final boolean defaultValue) {

return sp.getBoolean(key, defaultValue);

    }

/**w

* SP中写入String集合

*

    * @param key    键

    * @param values 值

*/

    public void put(@NonNull final String key, @NonNull final Set values) {

sp.edit().putStringSet(key, values).apply();

    }

/**

* SP中读取StringSet

*

    * @param key 键

    * @return 存在返回对应值,不存在返回默认值{@code Collections.<String>emptySet()}

*/

    public SetgetStringSet(@NonNull final String key) {

return getStringSet(key, Collections.emptySet());

    }

/**

* SP中读取StringSet

*

    * @param key          键

    * @param defaultValue 默认值

    * @return 存在返回对应值,不存在返回默认值{@code defaultValue}

*/

    public SetgetStringSet(@NonNull final String key, @NonNull final Set defaultValue) {

return sp.getStringSet(key, defaultValue);

    }

/**

* SP中获取所有键值对

*

    * @return Map对象

*/

    public MapgetAll() {

return sp.getAll();

    }

/**

* SP中是否存在该key

*

    * @param key 键

    * @return {@code true}: 存在<br>{@code false}: 不存在

*/

    public boolean contains(@NonNull final String key) {

return sp.contains(key);

    }

/**

* SP中移除该key

*

    * @param key 键

*/

    public void remove(@NonNull final String key) {

sp.edit().remove(key).apply();

    }

/**

* SP中清除所有数据

*/

    public void clear() {

sp.edit().clear().apply();

    }

private static boolean isSpace(final String s) {

if (s ==null)return true;

        for (int i =0, len = s.length(); i < len; ++i) {

if (!Character.isWhitespace(s.charAt(i))) {

return false;

            }

}

return true;

    }

}

相关文章

网友评论

      本文标题:SharedPreferences工具类

      本文链接:https://www.haomeiwen.com/subject/brjrqktx.html