AndroidUtils(六)SP工具类

来源:互联网 发布:少儿编程前景 编辑:程序博客网 时间:2024/05/22 08:14

共享参数存储工具类; ; ;

SharedPreferenceces; ; ;

Android必不可少的存储方式之一。

使用步骤:

  SPUtils.getInstance(this).put("putInt",1);//存储一个int值int ww = SPUtils.getInstance(this).getInt("putInt");  //取出这个int值

代码:
package com.example.bandofbrotherszts.androidphoneinfo;import android.content.Context;import android.content.SharedPreferences;import android.support.annotation.NonNull;import android.support.v4.util.SimpleArrayMap;import java.util.Collections;import java.util.Map;import java.util.Set;/** *Created by ${zhaojz} on 2017/8/1. *     共享参数存储工具类 */public final class SPUtils {    private static SimpleArrayMap SP_UTILS_MAP = new SimpleArrayMap<>();    private SharedPreferences sp;    /**     * 获取SP实例     *     * @return {@link SPUtils}     */    public static SPUtils getInstance(Context context) {        return getInstance("",context);    }    /**     * 获取SP实例     *     * @param spName sp名     * @return {@link SPUtils}     */    public static SPUtils getInstance(String spName,Context context) {        if (isSpace(spName)) spName = "ztsSP";        SPUtils spUtils = SP_UTILS_MAP.get(spName);        if (spUtils == null) {            spUtils = new SPUtils(spName,context);            SP_UTILS_MAP.put(spName, spUtils);        }        return spUtils;    }    private SPUtils(final String spName ,Context context) {        sp = context.getApplicationContext().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 String getString(@NonNull final String key) {        return getString(key, "");    }    /**     * SP中读取String     *     * @param key          键     * @param defaultValue 默认值     * @return 存在返回对应值,不存在返回默认值{@code defaultValue}     */    public String getString(@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);    }    /**     * 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.emptySet()}     */    public Set getStringSet(@NonNull final String key) {        return getStringSet(key, Collections.emptySet());    }    /**     * SP中读取StringSet     *     * @param key          键     * @param defaultValue 默认值     * @return 存在返回对应值,不存在返回默认值{@code defaultValue}     */    public Set getStringSet(@NonNull final String key, @NonNull final Set defaultValue) {        return sp.getStringSet(key, defaultValue);    }    /**     * SP中获取所有键值对     *     * @return Map对象     */    public Map getAll() {        return sp.getAll();    }    /**     * SP中是否存在该key     *     * @param key 键     * @return {@code true}: 存在
{@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; }}

更多工具类及源码:点击打开链接

群号:659014357   加加加!!!

原创粉丝点击