java安卓util工具类_Android-SPUtil-工具类

packagecommon.library.utils;importandroid.content.Context;importandroid.content.SharedPreferences;importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method;importjava.math.BigDecimal;importjava.util.Map;/*** @Author Liudeli

* @Describe:*/

public classSPUtil {/*** 保存在手机里面的文件名*/

//public static final String FILE_NAME = "share_data";

/*** 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法*/

/*public static void put(Context context, String key, Object object) {

put(context, FILE_NAME, key, object);

}*/

public static voidput(Context context, String spFileName, String key, Object object) {

SharedPreferences sp=context.getSharedPreferences(spFileName,

Context.MODE_PRIVATE);

SharedPreferences.Editor editor=sp.edit();if (object instanceofString) {

editor.putString(key, (String) object);

}else if (object instanceofInteger) {

editor.putInt(key, (Integer) object);

}else if (object instanceofBoolean) {

editor.putBoolean(key, (Boolean) object);

}else if (object instanceofFloat) {

editor.putFloat(key, (Float) object);

}else if (object instanceofLong) {

editor.putLong(key, (Long) object);

}else{

editor.putString(key, object.toString());

}

SharedPreferencesCompat.apply(editor);

}public static voidputString(Context context, String spFileName, String key, String stringData) {

SharedPreferences sp=context.getSharedPreferences(spFileName,

Context.MODE_PRIVATE);

SharedPreferences.Editor editor=sp.edit();

editor.putString(key, stringData);

editor.commit();//SharedPreferencesCompat.apply(editor);

}/*** 得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值*/

/*public static Object get(Context context, String key, Object defaultObject) {

return get(context, FILE_NAME, key, defaultObject);

}*/

public staticObject get(Context context, String spName, String key, Object defaultObject) {

SharedPreferences sp=context.getSharedPreferences(spName,

Context.MODE_PRIVATE);if (defaultObject instanceofString) {returnsp.getString(key, (String) defaultObject);

}else if (defaultObject instanceofInteger) {returnsp.getInt(key, (Integer) defaultObject);

}else if (defaultObject instanceofBoolean) {returnsp.getBoolean(key, (Boolean) defaultObject);

}else if (defaultObject instanceofFloat) {returnsp.getFloat(key, (Float) defaultObject);

}else if (defaultObject instanceofLong) {returnsp.getLong(key, (Long) defaultObject);

}return null;

}public staticString getString(Context context, String spName, String key, String stringDataDefault) {

SharedPreferences sp=context.getSharedPreferences(spName,

Context.MODE_PRIVATE);returnsp.getString(key, stringDataDefault);

}/*** 移除某个key值已经对应的值*/

/*public static void remove(Context context, String key) {

remove(context, FILE_NAME, key);

}*/

public static voidremove(Context context, String spFileName, String key) {

SharedPreferences sp=context.getSharedPreferences(spFileName,

Context.MODE_PRIVATE);

SharedPreferences.Editor editor=sp.edit();

editor.remove(key);

SharedPreferencesCompat.apply(editor);

}/*** 清除所有数据*/

/*public static void clear(Context context) {

clear(context, FILE_NAME);

}*/

public static voidclear(Context context, String spFileName) {

SharedPreferences sp=context.getSharedPreferences(spFileName, Context.MODE_PRIVATE);

SharedPreferences.Editor editor=sp.edit();

editor.clear();

SharedPreferencesCompat.apply(editor);

}/*** 查询某个key是否已经存在*/

/*public static boolean contains(Context context, String key) {

return contains(context, FILE_NAME, key);

}*/

public static booleancontains(Context context, String spFileName, String key) {

SharedPreferences sp=context.getSharedPreferences(spFileName, Context.MODE_PRIVATE);returnsp.contains(key);

}/*** 返回所有的键值对*/

/*public static Map getAll(Context context) {

return getAll(context, FILE_NAME);

}*/

public static MapgetAll(Context context, String spName) {

SharedPreferences sp=context.getSharedPreferences(spName,

Context.MODE_PRIVATE);returnsp.getAll();

}/*** 创建一个解决SharedPreferencesCompat.apply方法的一个兼容类*/

private static classSharedPreferencesCompat {private static final Method sApplyMethod =findApplyMethod();/*** 反射查找apply的方法*/@SuppressWarnings({"unchecked", "rawtypes"})private staticMethod findApplyMethod() {try{

Class clz= SharedPreferences.Editor.class;return clz.getMethod("apply");

}catch(NoSuchMethodException e) {

}return null;

}/*** 如果找到则使用apply执行,否则使用commit*/

public static voidapply(SharedPreferences.Editor editor) {try{if (sApplyMethod != null) {

sApplyMethod.invoke(editor);return;

}

}catch(IllegalArgumentException e) {

}catch(IllegalAccessException e) {

}catch(InvocationTargetException e) {

}

editor.commit();

}

}public static voidmain(String args[]) {//BigDecimal bigDecimal = 11111111112.46;

BigDecimal b1= new BigDecimal(Double.toString(11111111112.46));

System.out.println(new BigDecimal(11111111112.46));

System.out.println(new BigDecimal("11111111112.46"));

System.out.println(b1.toString());

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值