在多个片段/活动之间传递大对象。 Interfaces / EventBus最佳实践

时间:2017-07-10 12:09:47

标签: java android android-fragments

所以我有一个非常复杂的数据模型,它包含我从~500行XML解析的所有数据。我也有两个活动,他们都有自己的3-5个片段的viewpager。

该应用程序的目的是提供用户界面来配置所述XML文件。 我现在想要做的是:

  • 将对象从活动传递给每个片段
  • 从对象数据
  • 更新UI(Edittexts / Seekbars / Switches)
  • 让用户通过修改数据。 UI-输入
  • 将对象传递回包含片段的活动
  • 将对象序列化为xml&将其发布到服务器

我读到的关于这个主题的大多数线程都很老~2~4年,建议用接口来做。 这样做,我不必在每个片段的活动中实现一个接口吗?

有更有效的方法吗? 或者除了EventBus之外是否还有其他库可以使片段/活动/后台线程之间的通信更容易?

欢呼声

1 个答案:

答案 0 :(得分:1)

Dias,您可以创建包含所有数据的AppDataManager类。这个班级就像一个单身人士。然后在切换活动和片段期间,您可以通过AppDataManager Class设置和获取数据。

示例:

<强> 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());