gpt4 book ai didi

android - 将复杂对象列表从 Activity 传递到 fragment

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:30 25 4
gpt4 key购买 nike

我有一个带有 SearchFragment 和 SearchResultFragment 的 MainActivity。

当用户按下搜索按钮时,我使用 SearchParameters 作为参数从 SearchFragment 回调到 MainActivity。

在 MainActivity 上,我会显示一个 LoadFragment 并加载结果。
当我收到结果时,我想将结果对象列表传递给 SearchResultFragment。

最好的方法是什么?

我知道如果只有一个结果,您通常会这样做:

public static SearchResultFragment newInstance(SearchResult result) {
SearchResultFragment f = new SearchResultFragment();
Bundle args = new Bundle();
args.putInt("result", result); // Make result parceable
f.setArguments(args);
return f;
}

但是我该如何处理对象列表呢?

我能想到的另一种解决方案是在 fragment 的onAttach 方法中获取对MainActivity 的引用,然后在MainActivity 上调用方法getResults()。

最好的方法是什么?

最佳答案

在大多数情况下,您可以避免传递复杂对象的需要,但如果不能,则只需使用 getter 和 setter。尝试这样的事情:

public static SearchResultFragment newInstance(SearchResult result) {
SearchResultFragment f = new SearchResultFragment();
f.setResult(result);
return f;
}

但是尽量避免这种情况,使用Bundle 传递数据是一个更好的解决方案。尽可能使用 Parcelable

关于android - 将复杂对象列表从 Activity 传递到 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25526531/

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