1

次のように、Web サービスからの XML 応答を解析してオブジェクトにマッピングするために、Android アプリでSimple XML Serializationライブラリを使用しています。

@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 モデル オブジェクトを作成したくありません。これは、モデル クラスを調整しなければならないときに増加する冗長な作業です。すべての変数をバンドルに入れることもオプションではありません。リストが多すぎます。

私がこれまで試した回避策は、結果の文字列を (オブジェクトではなく) フラグメントに渡し、そこで解析とマッピングを行うことです。しかし、このプロセスには時間がかかるため、一度だけ実行して、それ以降はモデル オブジェクトを使用したいと考えています。

これを解決する方法を提案してくれる人はいますか? SimpleXMLPull を介した手動の解析とマッピングはより多くの作業になるため、マッピングを保持したいと思います。ありがとう!

4

0 に答える 0