将整个Bundle保存到SharedPreferences

ate*_*iob 7 android bundle sharedpreferences

假设我的一个方法被传递了Bundle已经填充了要保存的数据,有没有办法将它保存到SharedPreferences 而不将它分成整数,浮点数,字符串等?

我更喜欢"一举"编写/提交所有内容的便利性,所以如果使用SharedPreferences无法做到这一点,你会推荐其他持久存储方法吗?

Edw*_*ale 14

SharedPreferences被序列化为XML,这就是您只能使用简单类型的原因.您要么必须将捆绑包转换为单独的SharePreferences属性,要么将捆绑包以其他方式序列化到磁盘.

这是一个很好的参考文档,讨论在Android中存储数据的各种可能性:http://developer.android.com/guide/topics/data/data-storage.html

  • +1用于解释原因*为什么*SharedPreferences仅支持简单类型. (5认同)

Tom*_*lec 6

据我所知,您只能将原始数据(及其包装器)保存到SharedPreferences

为什么不创建自己的辅助方法,它将迭代Bundle并将所有值保存到SharedPreferences?

  • SharedPreferences用于存储简单类型,但我想您可以将Bundle序列化为字节数组并将其转换为字符串.有人可能会争辩说,您只是将维护SharedPreferences的努力转移到维护Bundle的努力上. (2认同)