您的位置:首页 > 移动开发 > Android开发

AndroidUtils(六)SP工具类

2017-09-05 16:16 267 查看
共享参数存储工具类; ; ;

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   加加加!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息