gpt4 book ai didi

android - 在 fragment 之间传递对象

转载 作者:太空狗 更新时间:2023-10-29 15:29:51 24 4
gpt4 key购买 nike

我正在使用带有三个 fragment 菜单的内置抽屉导航 Activity ,我想通过这些 fragment 进行通信意味着想要将数据从一个 fragment 传递到另一个 fragment 。我发现有三种可能的方式来与 fragment 通信。我也清楚地知道 fragment 从不直接交流。

  • 使用界面
  • 全局类(扩展应用类)
  • 最终使用包

现在我的问题是,哪种方式是与 fragment 通信的最佳方式,目前我正在使用第二种方法,我将(getter&setter 类)所有这些对象放入Globalized扩展应用程序类的对象这是正确的方法吗?

最佳答案

您可以在您的 Object 类中实现 Serializable,然后使用包简单地传递它。我假设您从 first_fragment 启动 second_fragment。

在您的第一个 fragment 中:

FragmentTransaction ft =  getActivity().getSupportFragmentManager().beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
Fragment2 fragment2 = new Fragment2();

Bundle bundle = new Bundle();
YourObj obj = SET_YOUR_OBJECT_HERE;
bundle.putSerializable("your_obj", obj);
fragment2.setArguments(bundle);
ft.replace(android.R.id.content, fragment2);
ft.addToBackStack(null);
ft.commit();

在 fragment 二中:

Bundle bundle = getArguments();
YourObj obj= (YourObj) bundle.getSerializable("your_obj");

编辑

要序列化您的对象,只需在您的 Object 类中实现 Serializable。

如果你的对象类是 YourObj.class

public class YourObj implements Serializable {
int id;
String name;

// GETTERS AND SETTERS
}

关于android - 在 fragment 之间传递对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42266436/

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