gpt4 book ai didi

java - 在多个 fragment/Activity 之间通信大对象。接口(interface)/EventBus 最佳实践

转载 作者:行者123 更新时间:2023-12-02 12:39:05 26 4
gpt4 key购买 nike

所以我有一个相当复杂的数据模型,它保存了我从大约 500 行 XML 中解析出来的所有数据。我也有两个 Activity ,它们都有自己的带有 3-5 个 fragment 的 viewpager。

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

  • 将对象从 Activity 传递到每个 fragment
  • 根据对象数据更新 UI(Edittexts/Seekbars/Switches)
  • 让用户通过修改数据。 ui-输入
  • 将对象传递回保存 fragment 的 Activity
  • 将对象序列化为 xml 并将其发布到服务器

我读到的关于这个主题的大多数线程都已经有大约 2-4 年的历史了,建议使用接口(interface)来实现。这样做,我是否必须在 Activity 中为每个 fragment 实现一个接口(interface)?

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

干杯

最佳答案

Dias,更好的是,您可以创建保存所有数据的 AppDataManager 类。这个类就像一个单例。然后在切换 Activity 和 Fragment 时,您可以通过 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;
}}

在您的 Activity 或 Fragment 设置数据中,如下所示,

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

在您的 Activity 或 Fragment 中获取如下数据,

 AppDataManager appDataManager = AppDataManager.getInstance();
Log.d(TAG," ===>"+appDataManager.getName());

关于java - 在多个 fragment/Activity 之间通信大对象。接口(interface)/EventBus 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45011664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com