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存储复杂数据类型,如double、ArrayList等。通过将数据转化为JSON字符串存储,实现不同类型数据的有效保存与读取。
2629

被折叠的 条评论
为什么被折叠?



