2016-04-29 6 views
0

2つのフラグメントを持つタブがあります。どちらのフラグメントも、ネットワークからデータをダウンロードして表示します。フラグメントのタブにデータを保存

典型的な使用例は、ユーザーがアプリケーションを開き、Fragment_Aがダウンロードしてデータを表示します。ユーザーが他のタブ(タブB)をクリックすると、Fragment_Bはデータをダウンロードして表示します。 ユーザーがFragment_Aに戻った場合、データは既にそこに表示されていますが、もう一度次のタブ(Fragment_B)に行くことを選択した場合は、データを再度ダウンロードする必要があります。

これで、ユーザーが以前のタブ(タブA)に移動している間、Fragment_Bにデータを保存する方法はありますか?これは私がonSaveInstanceState()とできることですか?

また、なぜFragment_Aはデータを保持し、Fragment_Bは保持しないのですか?コードは同一であり、変更されるのは表示されるデータだけです。

+1

ます私の活動にそれを保存することを意味しますか? – TUSHAR

+0

を得るためにあなたのフラグメントとその活動を接続することができ – Mes

+1

はい私は、Activity&Dataにデータを保存すると言っているのは、ViewPagerを使用していて、ViewPagerObject.setOffscreenPageLimit(3);を追加した場合、サーバ – TUSHAR

答えて

4

次のことが可能です。フラグメントからコンテナアクティビティ、およびそれにアクセス中のデータ

  • は/アプリケーションクラスに

  • を主催し、いくつかのクラスをシングルトンオブジェクトを使用

    1. ホスト

      しかし、あなたのプロセスが殺されるときはいつでもあなたはデータを失うことに注意してください。データを複数のプロセスspawnにまたがって保持したい場合は、sqllite /何らかの永続性に格納する必要があります。

    +0

    私は、コンテナのアクティビティでデータをホストし、何が起こるかを見てみましょう。ご回答有難うございます – Mes

    0

    はい、データはonSavedInstanceState()に格納できますが、アクティビティには独自のライフサイクルメソッドがあり、onSaveInstanceState()はその一部ではないため、使用することはお勧めしません。

    だから、いつも欲しいとは思わない。保存のために

  • Sqliteを

    • SharedPreferencesデータベースのような他のオプションがあります
    あなたの活動にデータをダウンロード&ダウンロードによってデータ
  • 関連する問題