后台让我本地存储枚举 他只返回对应的数字让我自己查询 , 要求非常过分 干了三年头一次碰见这种 自己懒 把工作量加到别人身上
下面是具体代码
// 后台返回的枚举类
{
"code": "0",
"msg": "success",
"data": {
"ConversationTypeEnum": [
{
"value": "01",
"desc": "日常话"
},
{
"value": "02",
"desc": "小时谈话"
},
{
"value": "03",
"desc": "一周内谈话"
},
{
"value": "04",
"desc": "后谈话"
},
{
"value": "05",
"desc": "谈话"
},
{
"value": "06",
"desc": "谈话"
},
{
"value": "07",
"desc": "谈话"
},
{
"value": "08",
"desc": "复核谈话"
},
{
"value": "09",
"desc": "调监谈话"
},
{
"value": "10",
"desc": "械具前谈话"
},
{
"value": "11",
"desc": "械具后谈话"
},
{
"value": "12",
"desc": "谈话"
},
{
"value": "13",
"desc": "出所前谈话"
},
{
"value": "14",
"desc": "其他"
}
]
}
}
下面是我自己写 的工具类 可以查单个 也可以查多个
/**
* 作者:宋
* 时间:2020/06/10.
* 邮箱
* 描述:
*/
public class MeiJuUtils {
/*
* 使用示例
*
* List<getMeiJuBean.ConversationTypeEnumBean> getmeiju = MeiJuUtils.getMultipleMeiju("01,02,03,04,05,06,07,08,09,10,11,12,13,14");
Log.e("TATTAT",getmeiju.toString());
* */
/**
* 获取单个枚举
*
* */
public static List<getMeiJuBean.ConversationTypeEnumBean> getSingleMeiju(String key) {
List<getMeiJuBean.ConversationTypeEnumBean> beanList = new ArrayList<>();
getMeiJuBean meiJuData = CommUtils.getMeiJuData();
if (key.length()==0){
return beanList;
}
String replaceKey = key.replaceAll(" ", "");
for (int i = 0; i < meiJuData.getConversationTypeEnum().size(); i++) {
if (replaceKey.equals(meiJuData.getConversationTypeEnum().get(i).getValue())) {
getMeiJuBean.ConversationTypeEnumBean bean = new getMeiJuBean.ConversationTypeEnumBean();
bean.setValue(meiJuData.getConversationTypeEnum().get(i).getValue());
bean.setDesc(meiJuData.getConversationTypeEnum().get(i).getDesc());
beanList.add(bean);
}
}
return beanList;
}
/**
* 获取多个枚举
* key 多个之间用, 间隔
* */
public static List<getMeiJuBean.ConversationTypeEnumBean> getMultipleMeiju(String key) {
List<getMeiJuBean.ConversationTypeEnumBean> beanList = new ArrayList<>();
getMeiJuBean meiJuData = CommUtils.getMeiJuData();
if (key.length()==0){
return beanList;
}
String replaceKey = key.replaceAll(" ", ""); // 去除空格
String[] result = replaceKey.split(","); // 获取连个逗号之间的数值
for (int i = 0; i < meiJuData.getConversationTypeEnum().size(); i++) {
for (int j = 0; j < result.length; j++) {
if (result[j].equals(meiJuData.getConversationTypeEnum().get(i).getValue())) {
getMeiJuBean.ConversationTypeEnumBean bean = new getMeiJuBean.ConversationTypeEnumBean();
bean.setValue(meiJuData.getConversationTypeEnum().get(i).getValue());
bean.setDesc(meiJuData.getConversationTypeEnum().get(i).getDesc());
beanList.add(bean);
}
}
}
return beanList;
}
/**
* 保存枚举
* @param data
*/
public static void saveMeiJuData(getMeiJuBean data) {
Gson mGson = new GsonBuilder().create();
PrefUtils.putString(Constants.SP_KEY.Sp_MeiJuData, mGson.toJson(data));
}
/**
* 获取枚举
*
* @return
*/
public static getMeiJuBean getMeiJuData() {
getMeiJuBean mMemberData;
Gson mGson = new GsonBuilder().create();
mMemberData = mGson.fromJson(PrefUtils.getString(Constants.SP_KEY.Sp_MeiJuData, ""), new TypeToken<getMeiJuBean>() {
}.getType());
if (mMemberData == null) {
mMemberData = new getMeiJuBean();
}
return mMemberData;
}
}
保存和获取joson 保存我也写上了 自己用自己取
注: sp内推荐储存少量的常用值 如果储存过大 请使用数据库 切记切记 至于为什么 你们自己百度去吧