package com.hdl.sdk.hdl_core.Util.SPUtil; import android.content.Context; import android.content.SharedPreferences; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.ZigbeeBean.ZigbeeDeviceSaveBean; import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.ZigbeeBean.ZigbeeSceneSaveBean; import com.hdl.sdk.hdl_core.Util.TransformUtil.JsonUtil; import java.lang.reflect.Type; import java.util.List; /** * Created by Tommy on 2018/1/19. *

*

* 保存 * SPUtils.setParam(this, "String", "xiaanming"); * SPUtils.setParam(this, "int", 10); * SPUtils.setParam(this, "boolean", true); * SPUtils.setParam(this, "long", 100L); * SPUtils.setParam(this, "float", 1.1f); *

* 获取 * SPUtils.getParam(this, "String", ""); SPUtils.getParam(TimerActivity.this, "int", 0); * SPUtils.getParam(this, "boolean", false); * SPUtils.getParam(this, "long", 0L); * SPUtils.getParam(this, "float", 0.0f); */ public class SPUtils { /** * 保存在手机里面的文件名 */ private static final String FILE_NAME = "share_rcu"; public static final String KEY_HDL_RCU_IP = "hdlrcuip"; public static final String KEY_IS_HDL_RCU = "ishdlrcu"; public static final String KEY_LOCAL_REMARK = "localremark"; public static final String DEFAULT_REMARK = "默认设备"; public static final String KEY_ZIGBEE_SCENE_IP = "zigbeesceneip"; public static final String KEY_ZIGBEE_IP = "zigbeeip"; public static final String KEY_RCU_IP_ = "rcuip"; public static final String KEY_SUB_ID_ = "subid"; public static final String KEY_DEVICE_ID = "deviceid"; public static final String KEY_DEVICE_DATA_LIST = "hdldevicedatalist"; public static final String KEY_LOCAL_BIG_CLASS_ = "local_big_class"; public static final String KEY_LOCAL_Small_CLASS_ = "local_Small_class"; public static final int DEFAULT_SUB_ID = 254; public static final int DEFAULT_DEVICE_ID = 80; /** * 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法 * * @param context * @param key * @param object */ public static void setParam(Context context, String key, Object object) { String type = object.getClass().getSimpleName(); SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); if ("String".equals(type)) { editor.putString(key, (String) object); } else if ("Integer".equals(type)) { editor.putInt(key, (Integer) object); } else if ("Boolean".equals(type)) { editor.putBoolean(key, (Boolean) object); } else if ("Float".equals(type)) { editor.putFloat(key, (Float) object); } else if ("Long".equals(type)) { editor.putLong(key, (Long) object); } editor.commit(); } /** * 得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值 * * @param context * @param key * @param defaultObject * @return */ public static Object getParam(Context context, String key, Object defaultObject) { String type = defaultObject.getClass().getSimpleName(); SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE); if ("String".equals(type)) { return sp.getString(key, (String) defaultObject); } else if ("Integer".equals(type)) { return sp.getInt(key, (Integer) defaultObject); } else if ("Boolean".equals(type)) { return sp.getBoolean(key, (Boolean) defaultObject); } else if ("Float".equals(type)) { return sp.getFloat(key, (Float) defaultObject); } else if ("Long".equals(type)) { return sp.getLong(key, (Long) defaultObject); } return null; } /** * 存储设备数据对象 * @param ctx * @param key * @param bookList */ public static void setZigbeeDeviceSaveBean(Context ctx,String key, List bookList) { SharedPreferences sp = ctx.getSharedPreferences("config", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); String json = JsonUtil.toJson(bookList); editor.putString(key, json); editor.commit(); } public static List getZigbeeDeviceSaveBean(Context ctx,String key) { SharedPreferences sp = ctx.getSharedPreferences("config", Context.MODE_PRIVATE); Gson gson = new Gson(); String json = sp.getString(key, null); Type type = new TypeToken>() { }.getType(); List arrayList = gson.fromJson(json, type); return arrayList; } /** * 存储场景数据对象 * @param ctx * @param key * @param bookList */ public static void setZigbeeSceneSaveBean(Context ctx,String key, List bookList) { SharedPreferences sp = ctx.getSharedPreferences("config", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); String json = JsonUtil.toJson(bookList); editor.putString(key, json); editor.commit(); } public static List getZigbeeSceneSaveBean(Context ctx,String key) { SharedPreferences sp = ctx.getSharedPreferences("config", Context.MODE_PRIVATE); Gson gson = new Gson(); String json = sp.getString(key, null); Type type = new TypeToken>() { }.getType(); List arrayList = gson.fromJson(json, type); return arrayList; } }