我在Android应用中使用Simple XML Serialization库来解析和映射从Web服务到对象的XML响应,如下所示:
@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
,这会打破使用Simple框架的映射。我也不想编写新的Parcelable模型对象,这是我必须调整模型类时增加的冗余工作。将每个变量放在捆绑包中也不是一个选项,列表太多,也有太多。
到目前为止,我尝试将结果字符串传递给片段(而不是对象)并在那里进行解析和映射。但是这个过程需要一段时间,我只想做一次而只是从那里使用我的模型对象。
有没有人建议我如何解决这个问题?我真的想保留Simple
映射,因为通过XMLPull进行手动解析和映射会有更多的工作。谢谢!