import android.content.Context;import android.content.SharedPreferences;import android.widget.ImageView;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Map;public class AppSharePreferenceMgr {    /**     * The path to save the launcher's data referring to grid.     */    public static final String FILE_NAME = "data";    /**     * According to parameter's type to decide which type is saved.     */    public static void put(Context context, String key, Object object)    {        SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);        SharedPreferences.Editor editor = sp.edit();        if (object instanceof String)        {            editor.putString(key, (String) object);        } else if (object instanceof Integer)        {            editor.putInt(key, (Integer) object);        } else if (object instanceof Boolean)        {            editor.putBoolean(key, (Boolean) object);        } else if (object instanceof Float)        {            editor.putFloat(key, (Float) object);        } else if (object instanceof Long)        {            editor.putLong(key, (Long) object);        } else        {            editor.putString(key, object.toString());        }        SharedPreferencesCompat.apply(editor);    }    public static Object get(Context context, String key, Object defaultObject)    {        SharedPreferences sp = context.getSharedPreferences(FILE_NAME,            Context.MODE_PRIVATE);        if (defaultObject instanceof String)        {            return sp.getString(key, (String) defaultObject);        } else if (defaultObject instanceof Integer)        {            return sp.getInt(key, (Integer) defaultObject);        } else if (defaultObject instanceof Boolean)        {            return sp.getBoolean(key, (Boolean) defaultObject);        } else if (defaultObject instanceof Float)        {            return sp.getFloat(key, (Float) defaultObject);        } else if (defaultObject instanceof Long)        {            return sp.getLong(key, (Long) defaultObject);        }        return null;    }    /**     * Remove the key.     */    public static void remove(Context context, String key)    {        SharedPreferences sp = context.getSharedPreferences(FILE_NAME,            Context.MODE_PRIVATE);        SharedPreferences.Editor editor = sp.edit();        editor.remove(key);        SharedPreferencesCompat.apply(editor);    }    /**     * Clear all data.     */    public static void clear(Context context)    {        SharedPreferences sp = context.getSharedPreferences(FILE_NAME,            Context.MODE_PRIVATE);        SharedPreferences.Editor editor = sp.edit();        editor.clear();        SharedPreferencesCompat.apply(editor);    }    /**     * Query the key if it exists.     */    public static boolean contains(Context context, String key)    {        SharedPreferences sp = context.getSharedPreferences(FILE_NAME,            Context.MODE_PRIVATE);        return sp.contains(key);    }    /**     * Return all key-value.     */    public static Map getAll(Context context)    {        SharedPreferences sp = context.getSharedPreferences(FILE_NAME,            Context.MODE_PRIVATE);        return sp.getAll();    }        /**     * Create a compat class to deal with SharePreferences.     */    private static class SharedPreferencesCompat    {        private static final Method sApplyMethod = findApplyMethod();        /**         * Reflect to search apply method.         */        @SuppressWarnings({ "unchecked", "rawtypes" })        private static Method findApplyMethod()        {            try            {                Class clz = SharedPreferences.Editor.class;                return clz.getMethod("apply");            } catch (NoSuchMethodException e)            {            }            return null;        }        public static void apply(SharedPreferences.Editor editor)        {            try            {                if (sApplyMethod != null)                {                    sApplyMethod.invoke(editor);                    return;                }            } catch (IllegalArgumentException e)            {            } catch (IllegalAccessException e)            {            } catch (InvocationTargetException e)            {            }            editor.commit();        }    }}

 

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. android List拖动时背景变化
  2. android 通信机制 socket
  3. ubuntu android 源码下载
  4. Android Camera对焦相关
  5. Android(安卓)6.0打开串口返回-1问题
  6. Android相关知识
  7. xml文件中xmlns含义
  8. android 调用popupwindow时activity变透
  9. 13个对Android开发者有帮助的工具和资源
  10. Android 权限的一些细节