Gson互转Json Android中使用SharedPreference存储List集合

最近项目中需要用到将数据缓存至本地的逻辑
一开始准备用数据库来进行处理,但是感觉太麻烦了,后来因为懒癌复发,决定用sp做存储,而且数据也不多,一个list集合,数据比较少,写了个工具类,可以参考下

sp的存储都是类似map的key-value方式,而且是覆盖试的存储(如果key一样后面一次存储的会覆盖前面一次存储的值)这个map里面不能有重复值类似,好了,不多说,直接上代码

package com.example.mytestdemo1.util;

import android.content.SharedPreferences;

import com.example.mytestdemo1.bean.Student;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.util.List;

/**
 * 类说明:SP工具类
 * 作者:lp
 * 时间:2019/8/8
 */
public class SharedPreferencesUtils {
    private static SharedPreferences preferences;
    private static SharedPreferences.Editor editor;

    public static void setPreferences(SharedPreferences preferences) {
        SharedPreferencesUtils.preferences = preferences;
    }

    /**
     * 保存List以及在SP中的key-->className
     * @param className
     * @param datalist
     */
    public static void setDataList(String className,List<Student> datalist) {
        if (null == datalist || datalist.size() <= 0)
            return;

        Gson gson = new Gson();
        //转换成json数据,再保存
        editor = preferences.edit();
        String Json = gson.toJson(datalist);
        editor.putString(className, Json);
        editor.commit();
    }

    /**
     * 获取List
     *
     * @param className
     * @return
     */
    public static List<Student> getDataList(String className) {
        List<Student> datalist;
        String Json = preferences.getString(className, null);
        if (null == Json) {
            return null;
        }
        Gson gson = new Gson();
        datalist = gson.fromJson(Json, new TypeToken<List<Student>>() {}.getType());
        return datalist;
    }
}

加油加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值