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;
    }
}

加油加油!

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