2011-02-09 12 views
2

私はParcelablesで読んでいましたが、私が読んでいるほど、私はそれについてもっと混乱しています。私がしようとしている何ParcelableとonClickListenersの使用方法は?

は、以下の

  1. はJSONデータを取得するために外部のAPIにフックアップされ(現在作業)。
  2. JSONオブジェクトをHashMapに配置した文字列に分解しています。私はリストビューを使用してスクロール可能なデータを表示しています(現在作業中)
  3. 新しいインテントを設定するonClickListenerを設定しました(現在作業中)
  4. ここで私は混乱しています。ユーザーがリストビュー内の項目をクリックすると、クリックした項目に関する詳細情報を含む新しい画面に移動します。数4を指すように

質問:

  1. 私は意思にJSONオブジェクトを渡すParcelableクラスを使用していますか?それは私の場合の最良の選択ですか?
  2. Parcelableが適切な場合は、渡されるJSONオブジェクト用のParcelablesを実装する新しいクラスを作成しますか?私は本当にどのように進めるか分からないと思う。私が見たすべての例では、writeToParcel()メソッドに渡す文字列がいくつかあります。それが複数のプロパティを持つオブジェクトにどのように変換されるかは不明です。

この度は読んでいただきありがとうございます。

答えて

1

データを次のアクティビティに渡す方法はいくつもありますが、データの複雑さに応じて最適です。いくつかのオプション:

Parcelableは、複雑なオブジェクトを渡す単なる効率的な方法です。このルートに行く場合は、はい、Parcelableを実装する新しいオブジェクトを作成します。あなたの書き込みメソッドは、必要なだけ複雑になる可能性があります。複雑なオブジェクトツリーがある場合は、各オブジェクトをParcelableに実装し、そのオブジェクトのwriteToParselメソッドを延期してオブジェクトツリーのその部分を書き出します。

より簡単ですが効率の低い方法は、すべてのオブジェクトにSerializableを実装させることです。そこではシリアライズとデシリアライズが行われますが、Parcelableの実装よりもはるかに遅いです。

アクティビティにプリミティブ情報がほんの少し必要な場合は、それぞれのアクティビティを独自の余分なものとして渡すこともできます。

最後に、Applicationクラスエクステンションまたは他のシングルトンを使用して複合データ構造を保存し、残りのデータを検索するのに必要な情報を新しいActivityに渡すことができます。これにより、渡す必要があるデータ量が削減され、アクティビティーの開始および停止に関する問題を回避するのに役立ちます。

関連する問題