我在我的 Android 应用程序中使用Simple XML Serialization库来解析 XML 响应并将其从 Web 服务映射到对象,如下所示:
@Root(name="root_tag", strict=false)
public class XMLRequest {
@Path("a/b")
@ElementList(name="routeList")
private List<Route> routes;
public ArrayList<Route> getRoutes() {
return new ArrayList<Route>(routes);
}
}
我有几个依赖模型类(如Route
)以类似的方式编写,并带有适当的注释,解析映射工作正常。
我现在想将Route
列表传递给一个新片段并将其显示在ListView
. 在另外几个模型类中有很多变量,所以我只希望这些类实现Parcelable
并将这样的列表传递给我的片段:
public static ResultFragment newInstance(ArrayList<Route> routes) {
ResultFragment fragment = new ResultFragment();
Bundle args = new Bundle();
args.putParcelableArrayList(ROUTE_LIST_KEY, routes);
fragment.setArguments(args);
return fragment;
}
我的问题:我不能让模型类实现Parcelable
,这会破坏与简单框架的映射。我也不想编写新的 Parcelable 模型对象,这是多余的工作,当我必须调整我的模型类时会增加。将每个变量都放在包中也不是一种选择,列表太多了,也太多了。
到目前为止,我尝试的解决方法是将结果字符串传递给片段(而不是对象)并在那里进行解析和映射。但是这个过程需要一段时间,我只想做一次,然后从那里使用我的模型对象。
有没有人建议我如何解决这个问题?我真的很想保留Simple
映射,因为通过 XMLPull 手动解析和映射会做更多的工作。谢谢!