SharedPreferences是Android平台上一个轻量级的存储辅助类,用来保存应用的一些常用配置,它提供了string,set,int,long,float,boolean六种数据类型。最终数据是以xml形式进行存储。在应用中通常做一些简单数据的持久化缓存。
SharedPreferences作为一个轻量级存储,所以就限制了它的使用场景,如果对它使用不当将会带来严重的后果。我们大多时候都是用来存我们APP的sessionid这些比较简单的数据,今天说一下SharedPreferences存取一个List,就直接贴出代码了,里面有注释。
工具类
public class SpListUtil{
private SharedPreferences preferences;
private SharedPreferences.Editor editor;
public SpListUtil(Context mContext, String preferenceName) {
preferences = mContext.getSharedPreferences(preferenceName, Context.MODE_PRIVATE);
editor = preferences.edit();
}
/**
* 保存List
* @param tag
* @param datalist
*/
public <T> void setDataList(String tag, List<DecBean> datalist) {
if (null == datalist || datalist.size() <= 0)
return;
Gson gson = new Gson();
//转换成json数据,再保存
String strJson = gson.toJson(datalist);
editor.clear();
editor.putString(tag, strJson);
editor.commit();
}
/**
* 获取List
* @param tag
* @return
*/
public List<DecBean> getDataList(String tag) {
List<DecBean> datalist=new ArrayList();
String strJson = preferences.getString(tag, null);
if (null == strJson) {
return datalist;
}
Gson gson = new Gson();
datalist = gson.fromJson(strJson, new TypeToken<List<DecBean>>() {
}.getType());
return datalist;
}
}
存数据
SpListUtil dataSave = new SpListUtil(this, "str");
dataSave.setDataList("strbean",list);
取数据
SpListUtil dataSave = new SpListUtil(this, "str");
List<DecBean> strbean = dataSave.getDataList("strbean");
到此就结束了,还是非常容易理解使用的。
会不定时更新安卓相关知识,喜欢的给点一下关注,感谢大家支持!!
网友评论