1.先来第一个场景,做一个mmkv本地存储list,需要把集合转化成string进行传递,和把string转化成list的
将List集合转化成String进行存储
if (mVideoHistorySumList != null && mVideoHistorySumList.size() > 0) {
//存储历史列表 //对象类型转化成json串存储
String strHistoryList = gson.toJson(mVideoHistorySumList);
mmkv.putString("videoHistoryList", strHistoryList);
}
将String转化成List集合进行存储
String strExistList = mmkv.getString("videoHistoryList", "");//获取数据
Gson gson = new Gson();
mVideoHistoryList = gson.fromJson(strExistList, new TypeToken<List<VideoVpModel>>() {
}.getType()); //将json字符串转换成List集合
2.sp的场景使用
将sp的List集合转化成String进行存储
//和读取的收藏做对比
if (getActivity().getSharedPreferences(“sp_collect_img”, MODE_PRIVATE) != null) {
SharedPreferences sp = getActivity().getSharedPreferences("sp_collect_img", MODE_PRIVATE);//创建sp对象,如果有key为"SP_PEOPLE"的sp就取出
String peopleListJson = sp.getString("collect_img", ""); //取出key为"KEY_PEOPLE_DATA"的值,如果值为空,则将第二个参数作为默认值赋值
ArrayList<ImgEntryResponse> collectImgList = new ArrayList<>();
if (!TextUtils.isEmpty(peopleListJson)) //防空判断
{
Gson gson = new Gson();
collectImgList = gson.fromJson(peopleListJson, new TypeToken<List<ImgEntryResponse>>() {
}.getType()); //将json字符串转换成List集合
}
将sp的String转化成List集合进行存储
//拿到历史列表最新数据,更新
SharedPreferences spHistory = getActivity().getSharedPreferences("sp_picConfig", Activity.MODE_PRIVATE);//创建sp对象,如果有key为"SP_PEOPLE"的sp就取出
String historyListJson = spHistory.getString("pic_history", ""); //取出key为"KEY_PEOPLE_DATA"的值,如果值为空,则将第二个参数作为默认值赋值
//获取项目中的静态资源文件
if (!TextUtils.isEmpty(historyListJson)) //防空判断
{
Gson gson = new Gson();
mSPHistoryImgList = gson.fromJson(historyListJson, new TypeToken<List<ImgEntryResponse>>() {
}.getType()); //将json字符串转换成List集合
}
将String转换成LIst集合,这里主要用了Gson,的 gson.fromJson()这个方法