SharePreference保存list

来源:互联网 发布:ubuntu怎么看软件位置 编辑:程序博客网 时间:2024/05/29 16:19

一、工具类,直接复制到你代码中

import android.content.Context;import android.content.SharedPreferences;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;import java.util.ArrayList;import java.util.List;/** * Created by XianBo.Geng on 2017/1/18. */public class ListDataSave {    private SharedPreferences preferences;    private SharedPreferences.Editor editor;    public ListDataSave(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<T> 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 <T> List<T> getDataList(String tag) {        List<T> datalist=new ArrayList<T>();        String strJson = preferences.getString(tag, null);        if (null == strJson) {            return datalist;        }        Gson gson = new Gson();        datalist = gson.fromJson(strJson, new TypeToken<List<T>>() {        }.getType());        return datalist;    }}

二、如何引用,首先是保存list数据,然后是获取list数据,但是获取到的是String值,我们需要转换成json格式数据

一、保存
这里写图片描述

二、转换成json数据,这样比网络多次请求便捷的多

这里写图片描述

0 0