操作SharedPreference数据的工具类

public class SavaDataSPUtil<T> {
    private static final String TAG = "MainActivity";
    private static SharedPreferences mSp = null;
    private static SavaDataSPUtil mSavaDataSPUtil = null;

    //创建单列标记
    private static String flag=null;

    //获取保存数据标记
    private String dataFlag=null;

    private static Context mContext;

    //初始化上下文
    public static void initContext(Context context) {
        mContext = context;
    }

    //私有的构造方法
    private SavaDataSPUtil(String tag) {
        this.dataFlag=tag;
        this.flag = tag;
        Log.i(TAG,"FLAG标志:"+flag);
        mSp = mContext.getSharedPreferences(tag, Context.MODE_PRIVATE);

    }


    //根据不同的标签创建不同的SavaDataSPUtil单列对象
    public static SavaDataSPUtil getInstance(String tag) {
        if (flag==null){
            mSavaDataSPUtil=new SavaDataSPUtil(tag);
            return mSavaDataSPUtil;
        }else

         if (flag!=null){
            if (flag.equals(tag)){
                return mSavaDataSPUtil;
            }else

            if (!flag.equals(tag)){
                mSavaDataSPUtil=new SavaDataSPUtil(tag);
                return mSavaDataSPUtil;
            }

        }
       return null;
    }

    //保存数据
    public void savaData(List<T> list) {
        Gson gson = new Gson();
        Type type = new TypeToken<List<T>>() {
        }.getType();
        String json = gson.toJson(list, type);
        mSp.edit().putString(dataFlag, json).commit();

    }

    public List<T> getData() {
        List<T> list=new ArrayList<>();

        Gson gson=new Gson();
        Type type=new TypeToken<List<T>>(){}.getType();
        Log.i(TAG,"获取数据的dataFlag标志:"+dataFlag);
        String string = mSp.getString(dataFlag, "null");
        list=gson.fromJson(string,type);
        return list;
    }
}

根据不同的标记创建不同的单列对象,保存、获取SharedPreference数据更加方便、快捷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值