如何将Simple XML Serialization模型对象放入Bundle?

时间:2013-07-31 08:13:47

标签: java android xml-serialization parcelable

我在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进行手动解析和映射会有更多的工作。谢谢!

0 个答案:

没有答案