用SharedPreferences存储一些常用的设置信息很方便,但是我们知道SharedPreferences只能存储一些简单的类型


如何用SharedPreferences来存储一些复杂的对象?下面以map为例,看看SharedPreferences 存储复杂对象的方法

如果想用SharedPreferences存取复杂的数据类型,就需要对这些数据进行编码。通常会将数据转换成Base64编码,然后将转换后的数据以字符串存储。

存储:

//将map转换为byte[]ByteArrayOutputStream toByte = new ByteArrayOutputStream();ObjectOutputStream oos = new ObjectOutputStream(toByte);oos.writeObject(map);//对byte[]进行Base64编码String payCityMapBase64 = new String(Base64Coder.encode(toByte.toByteArray()));// 存储editor.putString(KEY_CITY, payCityMapBase64);editor.commit();

下面是读取:

byte[] base64Bytes = Base64Coder.decode(prefer.getString(KEY_CITY, null));ByteArrayInputStream bais = new ByteArrayInputStream(base64Bytes);ObjectInputStream ois = new ObjectInputStream(bais);map = (Map) ois.readObject();boolean b= (Boolean) map.get(cityId);





更多相关文章

  1. Android硬编码——音频编码、视频编码及音视频混合
  2. 利用Android(安卓)Studio、MAT对Android进行内存泄漏检测
  3. android 消息机制(2)
  4. Android使用Parcelable传递对象方法及注意事项
  5. 深入浅析Android手机卫士保存密码时进行md5加密
  6. Android(安卓)学习手札(三) 视图(View)
  7. 三层缓存机制-新知识点,Android常见的内存缓存算法(LruCache原理
  8. Binder---- Android(安卓)的IPC 通信机制
  9. android window窗口机制

随机推荐

  1. Android color(颜色) 在XML文件和java代
  2. 详解Android XML文件使用的示例代码
  3. 使用xmlhttp为网站增加域名查询功能详细
  4. Xml格式数据的生成和解析的代码详情
  5. 详细介绍JavaScript解析 JSON 及 XML的示
  6. Web设计中如何使用XML数据源对象详细介绍
  7. web.xml 组件加载顺序详解
  8. 详细介绍Spring使用多个xml配置文件的代
  9. 基于XML的桌面应用的图文代码详细介绍
  10. LINQ to XML 编程基础的图文代码详细介绍