您的位置:首页 > 其它

给自己公司的项目写了两个功能 1.将对象 写入本地 缓存 2.去本地的缓存放到对象中

2014-10-17 17:27 267 查看
废话不多说 直接上代码

//讲一个对象存储到本地缓存里面
    public static void setObjectToSharedpreferences(Object oc,String name) {
        if (oc == null)
            return;
        if (oc instanceof Integer || oc instanceof String || oc instanceof Double || oc instanceof Float || oc instanceof Boolean)
            return;

        Field[] fields = oc.getClass().getDeclaredFields();
        SharedPreferences settings = LYApplication.getInstance().getSharedPreferences(name, 0);
        SharedPreferences.Editor editor = settings.edit();

        for (Field f : fields) {
            f.setAccessible(true);
        }
        if (fields.length == 0)
            return;
        //输出所有属性
        for (int i = 0; i < fields.length; i++) {

            String field = fields[i].toString().substring(fields[i].toString().lastIndexOf(".") + 1);         //取出属性名称
            try {

                if (fields[i].get(oc) instanceof String)
                    editor.putString(field, ((String) fields[i].get(oc)));
                else if (fields[i].get(oc) instanceof Integer)
                    editor.putInt(field, ((Integer) fields[i].get(oc)));
                else if (fields[i].get(oc) instanceof Double)
                    editor.putFloat(field, ((Float) fields[i].get(oc)));
                else if (fields[i].get(oc) instanceof Float)
                    editor.putFloat(field, ((Float) fields[i].get(oc)));
                else if (fields[i].get(oc) instanceof Boolean)
                    editor.putBoolean(field, ((Boolean) fields[i].get(oc)));
                else if (fields[i].get(oc) instanceof Long)
                    editor.putLong(field, ((Long) fields[i].get(oc)));

            } catch (IllegalArgumentException e) {

            } catch (IllegalAccessException e) {

            }
        }
        editor.commit();
    }

    //取本地缓存  写入到一个对象中
    public static void getObjectToSharedpreferences(Object oc,String name) {
        if (oc == null)
            return ;
        if (oc instanceof Integer || oc instanceof String || oc instanceof Double || oc instanceof Float || oc instanceof Boolean)
            return ;

        Field[] fields = oc.getClass().getDeclaredFields();
        SharedPreferences settings = LYApplication.getInstance().getSharedPreferences(name, 0);

        for (Field f : fields) {
            f.setAccessible(true);
        }
        if (fields.length == 0)
            return ;
        //输出所有属性
        for (int i = 0; i < fields.length; i++) {

            String field = fields[i].toString().substring(fields[i].toString().lastIndexOf(".") + 1);         //取出属性名称
            try {

                if (fields[i].get(oc) instanceof String) {
                    String s = settings.getString(field, ((String) fields[i].get(oc)));
                    fields[i].set(oc, s);
                } else if (fields[i].get(oc) instanceof Integer) {
                    int s = settings.getInt(field, ((Integer) fields[i].get(oc)));
                    fields[i].set(oc, s);
                } else if (fields[i].get(oc) instanceof Double) {
                    float s = settings.getFloat(field, ((Float) fields[i].get(oc)));
                    fields[i].set(oc, s);
                } else if (fields[i].get(oc) instanceof Float) {
                    float s = settings.getFloat(field, ((Float) fields[i].get(oc)));
                    fields[i].set(oc, s);
                } else if (fields[i].get(oc) instanceof Boolean) {
                    boolean s = settings.getBoolean(field, ((Boolean) fields[i].get(oc)));
                    fields[i].set(oc, s);
                } else if (fields[i].get(oc) instanceof Long) {
                    long s = settings.getLong(field, ((Long) fields[i].get(oc)));
                    fields[i].set(oc, s);
                }

            } catch (IllegalArgumentException e) {
                return ;
            } catch (IllegalAccessException e) {
                return ;
            }
        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐