安卓SharedPrefences存取List

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");

到此就结束了,还是非常容易理解使用的。

会不定时更新安卓相关知识,喜欢的给点一下关注,感谢大家支持!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章