我的对象中有List
Strings
:
public ArrayList<String> trailersURLs = new ArrayList<>();
如果需要保存字符串我使用
@Column(name = "trailer")
public String trailerUrl;
但我如何通过ActiveAndroid保存(实际注释)List<String>
?
答案 0 :(得分:3)
您可以使用数组替换您的集合并创建特定的TypeSerializer,例如使用json格式保存到db。
更多信息github.com/pardom/ActiveAndroid/wiki/Type-serializers
public class MyClassArraySerializer extends TypeSerializer {
private static final Gson gson = new Gson();
@Override
public Class<?> getDeserializedType() {
return MyClass[].class;
}
@Override
public Class<?> getSerializedType() {
return String.class;
}
@Override
public Object serialize(final Object o) {
if (null == o) return null;
final String json = gson.toJson(o);
return json;
}
@Override
public Object deserialize(final Object o) {
if (null == o) return null;
final MyClass[] myClassItems = gson.fromJson(o.toString(), MyClass[].class);
return myClassItems;
}
}
答案 1 :(得分:0)
请参阅我的回答here
只需使用List< String> list = new ArrayList<>();
无需担心创建其他对象。
对我而言,这是保存List&lt;最简单的方法。串GT;在ActiveAndroid中
public class ListGsonSerializer extends TypeSerializer {
private final static Gson gson = new Gson();
@Override
public Class<?> getDeserializedType() {
return List.class;
}
@Override
public Class<?> getSerializedType() {
return String.class;
}
@Override
public String serialize(Object data) {
if (null == data )
return null;
return gson.toJson(data);
}
@Override
public List<String> deserialize(Object data) {
if (null == data)
return null;
List<String> stringList = new ArrayList<>();
stringList = gson.fromJson(data.toString(), List.class);
return stringList;
}
}