首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在几个片段/活动之间传递大对象。接口/EventBus最佳实践

在几个片段/活动之间传递大对象。接口/EventBus最佳实践
EN

Stack Overflow用户
提问于 2017-07-10 12:09:46
回答 1查看 38关注 0票数 0

因此,我有一个相当复杂的数据模型,它保存了我从大约500行XML解析出来的所有数据。我也有两个活动,他们都有自己的3-5片段的查看器。

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

  • 将对象从活动传递到每个片段。
  • 从对象数据更新UI (编辑文本/Seekbar/开关)
  • 让用户通过。用户界面输入
  • 将对象传递回保存片段的活动。
  • 将对象序列化为xml &将其发送到服务器

我读到的大多数关于这个主题的文章都是相当古老的--2-4年,并且建议用接口来做。这样做,难道我不需要在活动中为每个片段实现一个接口吗?

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

干杯

EN

回答 1

Stack Overflow用户

发布于 2017-07-10 12:20:28

Dias,更好的方法是创建保存所有数据的AppDataManager类。这门课就像单身一样。然后,在切换活动和片段期间,您可以通过AppDataManager类设置和获取数据。

示例:

AppDataManager.java

代码语言:javascript
复制
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;
}}

在您的活动或片段集数据中,如下所示

代码语言:javascript
复制
  AppDataManager appDataManager = AppDataManager.getInstance();
            appDataManager.setName("User1");

在你的活动或片段中得到如下的数据,

代码语言:javascript
复制
 AppDataManager appDataManager = AppDataManager.getInstance();
            Log.d(TAG," ===>"+appDataManager.getName());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45011664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档