gpt4 book ai didi

java - 从 Activity 获取 fragment 内的数据

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

我正在广泛使用 Android Fragment,我遇到的问题之一是缺乏适当的机制来将复杂对象传递给它。

Fragments的android开发人员文档中,他们有一个名为newInstancestatic方法,使用一些简单的参数调用,这些参数将被打包到一个Bundle 并在Fragment 内使用。但是此方法不能用于传递复杂对象。

因为我经常使用 Fragments api,所以将复杂的对象传递给它变得越来越重要。实现此目的的一种方法是实现 Parcelable 接口(interface),我不想对所有类都这样做。

所以,我想我可以做到这一点:

  • 在 Fragment 中定义这样的接口(interface):

// Container Activity must implement this interface
public interface ReceiveDataInterface {
public MyClass getData(uniqueFragmentID);
}

强制使用此 fragment 的 Activity 实现接口(interface)并调用ReceiveDataInterface.getData(getArgument.getString(UNIQUEID))

  • Activity 中,通过传递 uniqueFragmentID 使用 newInstance 方法实例化 fragment ,并实现 ReceiveDataInterface ,它给出基于uniqueFragmentID的数据。

这样做是个好主意吗?如果没有,为什么?我应该如何去做呢?

注意:这与文档中描述的 OnArticleSelectedListener 相同。

非常感谢任何帮助。

最佳答案

我们为 Android 构建的任何应用程序都使用这种方法。效果很好。我还没有测试过每种方法,但我认为这是最好的方法之一。

关于java - 从 Activity 获取 fragment 内的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7827090/

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