package com.userxieyi; import android.content.Context; import android.content.SharedPreferences; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Map; public class SPUtil { public static final String FILE_NAME = "share_data"; public static void put(Context context, String str, Object obj) { SharedPreferences.Editor edit = context.getSharedPreferences(FILE_NAME, 0).edit(); if (obj instanceof String) { edit.putString(str, (String) obj); } else if (obj instanceof Integer) { edit.putInt(str, ((Integer) obj).intValue()); } else if (obj instanceof Boolean) { edit.putBoolean(str, ((Boolean) obj).booleanValue()); } else if (obj instanceof Float) { edit.putFloat(str, ((Float) obj).floatValue()); } else if (obj instanceof Long) { edit.putLong(str, ((Long) obj).longValue()); } else if (obj != null) { edit.putString(str, obj.toString()); } SharedPreferencesCompat.apply(edit); } public static Object get(Context context, String str, Object obj) { SharedPreferences sharedPreferences = context.getSharedPreferences(FILE_NAME, 0); if (obj instanceof String) { return sharedPreferences.getString(str, (String) obj); } if (obj instanceof Integer) { return Integer.valueOf(sharedPreferences.getInt(str, ((Integer) obj).intValue())); } if (obj instanceof Boolean) { return Boolean.valueOf(sharedPreferences.getBoolean(str, ((Boolean) obj).booleanValue())); } if (obj instanceof Float) { return Float.valueOf(sharedPreferences.getFloat(str, ((Float) obj).floatValue())); } if (obj instanceof Long) { return Long.valueOf(sharedPreferences.getLong(str, ((Long) obj).longValue())); } return null; } public static void remove(Context context, String str) { SharedPreferences.Editor edit = context.getSharedPreferences(FILE_NAME, 0).edit(); edit.remove(str); SharedPreferencesCompat.apply(edit); } public static void clear(Context context) { SharedPreferences.Editor edit = context.getSharedPreferences(FILE_NAME, 0).edit(); edit.clear(); SharedPreferencesCompat.apply(edit); } public static boolean contains(Context context, String str) { return context.getSharedPreferences(FILE_NAME, 0).contains(str); } public static Map<String, ?> getAll(Context context) { return context.getSharedPreferences(FILE_NAME, 0).getAll(); } private static class SharedPreferencesCompat { private static final Method sApplyMethod = findApplyMethod(); private SharedPreferencesCompat() { } private static Method findApplyMethod() { try { return SharedPreferences.Editor.class.getMethod("apply", new Class[0]); } catch (NoSuchMethodException unused) { return null; } } public static void apply(SharedPreferences.Editor editor) { try { Method method = sApplyMethod; if (method != null) { method.invoke(editor, new Object[0]); return; } } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException unused) { } editor.commit(); } } }