使用sharedpreferences保存对象的方法,sharedpreferences是不能够直接保存对象的,我们需要将对象序列化成一个字符串进行存储。
例如:Person这样一个对象
public static void getJsonStringByEntity(Context context, Object object) {
String strJson = "";
Gson gson = new Gson();
strJson = gson.toJson(object);
saveSharePerson(context,strJson);//使用sharedpreferences保存
}
取出来的时候,我们取出String后,通过json转换为实体对象就好了
public static Person getfromJson(Context context){
Person person= null;
String str = readSharePerson(context);//使用sharedpreferences取
if(str!=null){
Gson gson=new Gson();
person= gson.fromJson(str, new TypeToken<Person >(){}.getType());
}
return person;
}
例如:保存集合
public static <T> void setDataList(String tag, List<T> datalist) {
if (null == datalist || datalist.size() <= 0)
return;
Gson gson = new Gson();
//转换成json数据,再保存
String strJson = gson.toJson(datalist);
//edit.clear();
edit.putString(tag, strJson);
edit.commit();
}
获取这个集合
/**
* 获取List
* @param tag
* @return
*/
public static <T> List<T> getDataList(String tag) {
List<T> datalist=new ArrayList<T>();
String strJson = othermessage.getString(tag, null);
if (null == strJson) {
return datalist;
}
Gson gson = new Gson();
datalist = gson.fromJson(strJson, new TypeToken<List<T>>() {
}.getType());
return datalist;
}