public static ArrayList<PhotoInfo> readPhotoInfoJSON(Context context)
{
if(context==null){
return new ArrayList<>();
}
try{
SharedPreferences mSettings =
context.getSharedPreferences("yourSharedPreNme", Context.MODE_PRIVATE);
String loadValue = mSettings.getString("shringName", "");
Type listType = new TypeToken<ArrayList<PhotoInfo>>(){}.getType();
return new GsonBuilder()
.registerTypeAdapter(Uri.class, new UriDeserializer())
.create()
.fromJson(loadValue, listType);
}catch (Exception e){
e.printStackTrace();
}
return new ArrayList<>();
}
public static class UriDeserializer implements JsonDeserializer<Uri> {
@Override
public Uri deserialize(final JsonElement src, final Type srcType,
final JsonDeserializationContext context) throws
JsonParseException {
return Uri.parse(src.toString().replace("\"", ""));
}
}
public static class UriSerializer implements JsonSerializer<Uri> {
public JsonElement serialize(Uri src, Type typeOfSrc,
JsonSerializationContext context) {
return new JsonPrimitive(src.toString());
}
}
4条答案
按热度按时间jaxagkaj1#
嘿,我做了这个简单的方法来保存和获取任何自定义模型的ArrayList到
SharedPreferences
。为此需要Gson依赖项:
将任何自定义列表保存到
SharedPreferences
:从
SharedPreferences
获取我保存的所有照片:4jb9z9bj2#
您可以使用gson库将arraylist转换为字符串,并在下面的SharedPreferences代码中存储和获取
在gradle依赖项中添加此
将列表转换为字符串并存储在SharedPreferences中
获取自定义阵列列表
s71maibg3#
首先,您需要在模型类中实现
Serializable
接口接下来,在模块级
build.gradle
文件中添加implementation 'com.google.code.gson:gson:2.8.2'
然后,您可以通过这种方式将Arraylist保存到共享首选项/从共享首选项中检索Arraylist:
p5fdfcr14#
1.保存数组列表
1.获取数组列表
}