SharedPreferences存储多种类型
来源:互联网 发布:美国指数型基金数据 编辑:程序博客网 时间:2024/05/18 09:38
SharedPreferences轻量级存储
public class SharedManager {
String SHARE_NAME = "CUNCU";//文件名称
public static void saveUid(String uid) {
SharedPreferences sharedPreferences = AppApplication.getInstance()
.getSharedPreferences(SHARE_NAME, 0);
Editor editor = sharedPreferences.edit();
editor.putString("uid", uid);
editor.commit();
}
public static String getSavedUid() {
SharedPreferences sharedPreferences = AppApplication.getInstance()
.getSharedPreferences(SHARE_NAME, 0);
return sharedPreferences.getString("uid", "");
}
}
AppApplication.getInstance()就是我自己定义的继承application的类
基本大家都用过,SharedPreferences存储是通过SharedPreferences中的edittext编辑器设置键值来存储的
而edittext编辑器只能存储int、string、float、boolean、long类型,如果是其他类型呢,是不是就不能存储了?
比如double类型,是不是要转成string,获取的时候再转成double类型能,看着貌似可以,但是会有精度缺失
后面就想到一个方式,就是json数据,因为json格式就是一个String,存进去拿出来还是json数据,是不会有改变的。
那么在存到SharedPreferences之前,先把数据转成json格式,存入SharedPreferences,获取后再转化成对应的类别,就能获取当中存的各种类型的值
json能传的数据格式都可以存储了。
一、通过建bean
public class Bean {
private double B;
private double C;
private String A;
public double getB() {
return B;
}
public void setB(double b) {
B = b;
}
public double getC() {
return C;
}
public void setC(double c) {
C = c;
}
public String getA() {
return A;
}
public void setA(String a) {
A = a;
}
}
//存储数据
double b=0.0;
double c=1.0;
String a="数据存储";
Bean bean=new Bean();
bean.setB(b);
bean.setC(c);
bean.setA(a);
//这里我通过Gson进行转化
Gson gson=new Gson();
String uid=gson.tojson(bean);
SharedManager.saveUid(uid);
//获取数据 转化
String uuid=SharedManager.getSavedUid();
Gson gson=new Gson();
Bean bean=gson.fromjson(uuid,Bean.class);
double bb=bean.getB();
double cc=bean.getC();
String aa=bean.getA();二、比如Arraylist类型或者其他类似的比较单一的数据,不想通过建bean转化
//以ArrayList嵌套list为例
ArrayList<Stringt> list=new ArrayList<String>();
ArrayList<list> list2=new ArrayList<list>();
//这里我通过Gson进行转化存储
Gson gson=new Gson();
String uid=gson.tojson(list2);
//获取数据转换 这里和bean不同
String uuid=SharedManager.getSavedUid();
//类型要和之前的类型一致
ArrayList<Stringt> list=new ArrayList<String>();
Type Type = new TypeToken<ArrayList<list>>() {
}.getType()
Gson gson=new Gson();
ArrayList<list> list2=gson.fromJson(uuid, Type);
- SharedPreferences存储多种类型
- Android-存储:SharedPreferences使用及其存储类型
- C++ 存储多种类型的结构
- 一个DWORD类型存储多种数据
- SharedPreferences存储
- SharedPreferences存储
- SharedPreferences存储
- SharedPreferences存储
- SharedPreferences 存储
- SharedPreferences存储
- SharedPreferences存储
- SharedPreferences存储
- SharedPreferences存储
- SharedPreferences存储
- SharedPreferences存储
- SharedPreferences存储
- SharedPreferences 存储
- SharedPreferences存储
- AndroidStudio 断点调试
- Java调用Python脚本
- PAT-B 1033. 旧键盘打字
- <Python进阶读书笔记>之(二) 生成器
- mysql 连接出错 'mysqladmin flush-hosts'
- SharedPreferences存储多种类型
- scala映射和元组
- 【高精度算法】A-B(答案可负)
- QQ、Qzone分享的一些注意项
- 剑指offer——扑克牌顺子
- numpy 内置函数总结
- <Python进阶读书笔记>之(三) Map, Filter和reduce
- vivado设计流程
- PAT-B 1036. 跟奥巴马一起编程