2017-07-10 5 views
0

私は〜500行のXMLから解析したすべてのデータを保持するかなり複雑なデータモデルを持っています。私も2つのアクティビティを持っていて、どちらも3〜5個のフラグメントを持つ独自のビューページを持っています。複数のフラグメント/アクティビティ間で大きなオブジェクトを通信する。 Interfaces/EventBusベストプラクティス

このアプリケーションの目的は、XMLファイルを設定するためのユーザーインターフェイスを提供することです。私が今できるようにしたいどのような は次のとおりです。

  • は、ユーザーを聞かせて
  • オブジェクトデータから
  • 更新UI(Edittexts/Seekbars /スイッチに)活動からのフラグメントのそれぞれにオブジェクトを渡します経由でデータを変更します。
  • UI-入力
  • は〜2私はこのトピックについて読んスレッドのほとんどはかなり古いだった
  • 直列化オブジェクトをXMLにサーバー

に&ポストそれを断片を保持している活動に戻ってオブジェクトを渡します4年とインターフェイスでそれを行うことをお勧めします。 このようにすると、すべてのフラグメントのアクティビティにインターフェイスを実装する必要はありませんか?

もっと効率的な方法がありますか? または、フラグメント/アクティビティ/バックグラウンドスレッド間の通信を容易にするEventBus以外のライブラリがありますか?

歓声

答えて

1

ディアス、より良いあなたは、すべてのデータを保持AppDataManagerクラスを作成することができます。このクラスはシングルトンのようです。アクティビティやフラグメントの切り替え中に、AppDataManagerクラスを介してデータを設定して取得できます。

:あなたの活動に

AppDataManager.javaあなたの活動に

public class AppDataManager { 
private static final AppDataManager ourInstance = new AppDataManager(); 

private String name; 
private AppDataManager() { 
} 

public void setName(String name) { 
    this.name = name; 
} 

public String getName() { 
    return name; 
} 

public static AppDataManager getInstance() { 
    return ourInstance; 
}} 

またはフラグメントは、以下のようなデータを設定し、

AppDataManager appDataManager = AppDataManager.getInstance(); 
      appDataManager.setName("User1"); 

またはフラグメント以下のようなデータを取得します、

AppDataManager appDataManager = AppDataManager.getInstance(); 
      Log.d(TAG," ===>"+appDataManager.getName()); 
関連する問題