性能测试工具 java ur_工具类之SPUtils

此工具类不是网上大家用烂的那一份,是博主亲自编写,亲自测试,代码简洁清晰,可满足日常开发,不再是采用效率低下的commit来提交,而是apply,至于两者有何不同,大家可以自行search。

Talk is cheap, show me ur code.下面上方法列表和具体代码,开车喽,呜~~

getInstance: 获取SP实例

put : SP中写入数据

getString : SP中读取String

getInt : SP中读取int

getLong : SP中读取long

getFloat : SP中读取float

getBoolean : SP中读取boolean

getAll : SP中获取所有键值对

remove : SP中移除该key

contains : SP中是否存在该key

clear : SP中清除所有数据

import android.content.Context;

import android.content.SharedPreferences;

import android.support.annotation.NonNull;

import java.util.Collections;

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

/**

*

 
 

* author: Blankj

* blog : http://blankj.com

* time : 2016/08/02

* desc : SP相关工具类

*

*/

public class SPUtils {

private static Map sSPMap = new HashMap<>();

private SharedPreferences sp;

/**

* 获取SP实例

*

* @return {@link SPUtils}

*/

public static SPUtils getInstance() {

return getInstance("");

}

/**

* 获取SP实例

*

* @param spName sp名

* @return {@link SPUtils}

*/

public static SPUtils getInstance(String spName) {

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

SPUtils sp = sSPMap.get(spName);

if (sp == null) {

sp = new SPUtils(spName);

sSPMap.put(spName, sp);

}

return sp;

}

private SPUtils(String spName) {

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

}

/**

* SP中写入String

*

* @param key 键

* @param value 值

*/

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

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

}

/**

* SP中读取String

*

* @param key 键

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

*/

public String getString(@NonNull String key) {

return getString(key, "");

}

/**

* SP中读取String

*

* @param key 键

* @param defaultValue 默认值

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

*/

public String getString(@NonNull String key, @NonNull String defaultValue) {

return sp.getString(key, defaultValue);

}

/**

* SP中写入int

*

* @param key 键

* @param value 值

*/

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

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

}

/**

* SP中读取int

*

* @param key 键

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

*/

public int getInt(@NonNull String key) {

return getInt(key, -1);

}

/**

* SP中读取int

*

* @param key 键

* @param defaultValue 默认值

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

*/

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

return sp.getInt(key, defaultValue);

}

/**

* SP中写入long

*

* @param key 键

* @param value 值

*/

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

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

}

/**

* SP中读取long

*

* @param key 键

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

*/

public long getLong(@NonNull String key) {

return getLong(key, -1L);

}

/**

* SP中读取long

*

* @param key 键

* @param defaultValue 默认值

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

*/

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

return sp.getLong(key, defaultValue);

}

/**

* SP中写入float

*

* @param key 键

* @param value 值

*/

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

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

}

/**

* SP中读取float

*

* @param key 键

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

*/

public float getFloat(@NonNull String key) {

return getFloat(key, -1f);

}

/**

* SP中读取float

*

* @param key 键

* @param defaultValue 默认值

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

*/

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

return sp.getFloat(key, defaultValue);

}

/**

* SP中写入boolean

*

* @param key 键

* @param value 值

*/

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

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

}

/**

* SP中读取boolean

*

* @param key 键

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

*/

public boolean getBoolean(@NonNull String key) {

return getBoolean(key, false);

}

/**

* SP中读取boolean

*

* @param key 键

* @param defaultValue 默认值

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

*/

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

return sp.getBoolean(key, defaultValue);

}

/**

* SP中写入String集合

*

* @param key 键

* @param values 值

*/

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

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

}

/**

* SP中读取StringSet

*

* @param key 键

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

*/

public Set getStringSet(@NonNull String key) {

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

}

/**

* SP中读取StringSet

*

* @param key 键

* @param defaultValue 默认值

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

*/

public Set getStringSet(@NonNull String key, @NonNull Set defaultValue) {

return sp.getStringSet(key, defaultValue);

}

/**

* SP中获取所有键值对

*

* @return Map对象

*/

public Map getAll() {

return sp.getAll();

}

/**

* SP中移除该key

*

* @param key 键

*/

public void remove(@NonNull String key) {

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

}

/**

* SP中是否存在该key

*

* @param key 键

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

*/

public boolean contains(@NonNull String key) {

return sp.contains(key);

}

/**

* SP中清除所有数据

*/

public void clear() {

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

}

private static boolean isSpace(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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值