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());
}
}