给自己公司的项目写了两个功能 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 ; } } }
相关文章推荐
- android实现对象写入XML,本地缓存
- 自己在项目中的学习总结:利用工厂模式+反射机制+缓存机制,实现动态创建不同的数据层对象接口
- 自己做的 code_kk 的安卓客户端,数据是抓包来的,实现了每日开源项目的展示,和搜索功能,收藏功能是存在了本地数据库。
- 动态调用WebService并把对象缓存在本地....
- 测试自动化实现的两个难点-功能分解和对象识别
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 数据层应该分为两个部分,这样可以更好的“分工”,各自研究自己的功能
- 两个做项目最常用功能操作的封装类 (1)
- 两个做项目最常用功能操作的封装类 (2)
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 自己编写的一个Json工具类,实现了反射将整个Object转换为Json对象的功能,支持Hibernate的延迟加载对象
- 关于微软软件的操作系统在中国公司的比较性能测试-后果有很多后门木马因为微软没有打开系统的两个功能
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类 (转载)
- 自己编写的一个Json工具类,实现了反射将整个Object转换为Json对象的功能,支持Hibernate的延迟加载对象[修订081217]