1

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

4

0 回答 0